常見NoSQL數據庫的多維度對比,及適用場景分析

1. NoSQL

NoSQL(Not Only SQL),泛指非關係型的數據庫(mysql、oracle、sqlserver都是關係型數據庫)。

1.1 NoSQL特點

  • 數據之間無關係,隨意擴展
  • 數據存儲簡單,可以存在內存中,讀寫速度快
  • 不需要建表、字段。自定義格式

1.2 NoSQL數據庫的多維度分析圖表

常見NoSQL數據庫的多維度對比,及適用場景分析

1.2.1 共同特徵

  1. 不需要預定義模式:不需要事先定義數據模式,預定義表結構。數據中的每條記錄都可能有不同的屬性和格式。當插入數據時,並不需要預先定義它們的模式。
  2. 無共享架構:相對於將所有數據存儲的存儲區域網絡中的全共享架構。NoSQL往往將數據劃分後存儲在各個本地服務器上。因為從本地磁盤讀取數據的性能往往好於通過網絡傳輸讀取數據的性能,從而提高了系統的性能。
  3. 彈性可擴展:可以在系統運行的時候,動態增加或者刪除結點。不需要停機維護,數據可以自動遷移。
  4. 分區:相對於將數據存放於同一個節點,NoSQL數據庫需要將數據進行分區,將記錄分散在多個節點上面。並且通常分區的同時還要做複製。這樣既提高了並行性能,又能保證沒有單點失效的問題。
  5. 異步複製:和RAID存儲系統不同的是,NoSQL中的複製,往往是基於日誌的異步複製。這樣,數據就可以儘快地寫入一個節點,而不會被網絡傳輸引起遲延。缺點是並不總是能保證一致性,這樣的方式在出現故障的時候,可能會丟失少量的數據。
  6. BASE:相對於事務嚴格的ACID(原子性,一致性,隔離性,持久性)特性,NoSQL數據庫保證的是BASE(BA——基本可用,S——軟狀態,柔性事務,E——最終一致性)特性。【注】CAP原理(C——一致性,A——可用性,P——分區容錯性,當前NoSQL大部分滿足了AP原理)

1.2.2 適用場景

NoSQL數據庫在以下的這幾種情況下比較適用:

1、數據模型比較簡單;

2、需要靈活性更強的IT系統;

3、對數據庫性能要求較高;

4、不需要高度的數據一致性;

5、對於給定key,比較容易映射覆雜值的環境。


分享到:


相關文章: