聊聊 NoSQL

Nick發表於2019-10-30

Not Only SQL 這是最常見對非關係型資料庫描述的一句話

NoSQL 這個詞的定義非常不明確,它泛指非關係型資料庫。主張使用無模式(Schema)的資料,可以執行在叢集環境中,並且能夠犧牲關係型資料庫所具備的一致性,以換取另外一些有用的特性,NoSQL 的倡導者聲稱,使用它們可以構建出效能更高、擴充套件度更好且更易於的系統。

什麼型別的資料庫可以稱為 NoSQL 資料庫呢?

  • 開發於 21 世紀初
  • 開放原始碼
  • 不以 SQL 語句運算元據庫,透過 Shell 指令碼命令操作

NoSQL 資料庫常見的型別

  • 鍵值型別 Redis
  • 文件型別 MongoDB
  • 列族型別 HBase
  • 圖形型別 Neo4j

除了非關係型資料庫與 NoSQL 資料庫,還有一種物件型別資料庫,但已經沒有人使用,因為有了 ORM 物件關係對映模型框架

為什麼要使用 NoSQL 資料庫

  • 應用程式的開發效率,傳統的關係型資料庫,會使技術人員花費大量的時間找實體、關係圖、建模型上。

  • 大規模的資料,應用要快速從資料庫中獲取資料,傳統關係型資料庫即便能達到要求,相比 NoSQL 成本較高。畢竟 NoSQL 資料庫為叢集環境而設計,自帶分片、複製、分散式功能,更適合大規模資料的應用場景。

應用場景

目前企業實際專案中常見的還是以關係型資料為主,NoSQL為輔。
比如主流關係型資料 MySQL 資料庫。鍵值型別、資料存與記憶體的 Redis 來作為快取、佇列、分散式事務鎖。文件型別的 MongoDB 存放日誌資訊、社交類應用存放使用者資訊。Hbase 用於大資料分析使用者行為,廣告、金融系統存放使用者支出、收益資訊。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
微信訂閱號:我愛Coding

相關文章