隨著互聯網不斷的發展,催生了越來越多的超大型網站,這些網站要求響應速度快、并發量高,使得傳統數據庫難以應對。為了克服關系型數據庫的瓶頸,大規模多重數據的挑戰,noSql型數據庫能很好的解決此類問題。
noSql全稱為not only sql,是一種非關系類型數據庫的統稱。發展至今市場空前繁榮,IT界大佬廠商們紛紛推出自己的noSql類型數據庫。
NoSql分類
根據數據庫存儲方式,可將市面主流NoSql類型數據庫劃分成四類。
鍵值
此類數據庫采用Map(key-value)方式保存數據,一般都會用哈希表。這類型noSql數據庫操作簡單、使用方便。但對數據查詢與更新的時候,效率相對低下。代表數據庫:Redis, Voldemort, Oracle BDB。
列值
此類型數據庫的鍵保留,和鍵-值類型數據庫不同是,它一個鍵可指向多列,列又分成若干子列。代表數據庫:Cassandra, HBase, Riak。
文檔
它與key-value存儲方式類似,用版本化的數據文檔保存,可看成JSON格式。它可以嵌套鍵值,相對純屬鍵值數據庫查詢效率比較高。代表數據庫:CouchDB, MongoDb。
圖形
圖形結構的數據庫與其它類型有很大不同,它使用靈活的圖形模型,能分布在多臺服務器上。它沒有標準的查詢語言(SQL),要制定相應的數據模型。如:Neo4J, InfoGrid, Infinite Graph。
適用場景
noSql類型數據庫還不能完全替代傳統關系型數據庫,它只適合以下的這幾種情況下比較適用:
l數據模型比較簡單
l需要靈活性更強的IT系統
l對數據庫性能要求較高
l不需要高度的數據一致性
l對于給定key,比較容易映射復雜值的環境