NoSQL數(shù)據(jù)庫的四大分類
鍵值(Key-Value)存儲數(shù)據(jù)庫
這一類數(shù)據(jù)庫主要會使用到一個哈希表,這個表中有一個特定的鍵和一個指針指向特定的數(shù)據(jù)弃舒。Key/value模型對于IT系統(tǒng)來說的優(yōu)勢在于簡單掸绞、易部署熬拒。但是如果DBA只對部分值進行查詢或更新的時候,Key/value就顯得效率低下了灶芝。[3]
??舉例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.宽堆,Google
??BigTable 腌紧,Amazon DynamoDB
列存儲數(shù)據(jù)庫。
這部分?jǐn)?shù)據(jù)庫通常是用來應(yīng)對分布式存儲的海量數(shù)據(jù)畜隶。鍵仍然存在壁肋,但是它們的特點是指向了多個列。這些列是由列家族來安排的籽慢。如:Cassandra,
??HBase, Riak.
文檔型數(shù)據(jù)庫
文檔型數(shù)據(jù)庫的靈感是來自于Lotus
??Notes辦公軟件的浸遗,而且它同第一種鍵值存儲相類似。該類型的數(shù)據(jù)模型是版本化的文檔箱亿,半結(jié)構(gòu)化的文檔以特定的格式存儲跛锌,比如JSON。文檔型數(shù)據(jù)庫可
??以看作是鍵值數(shù)據(jù)庫的升級版届惋,允許之間嵌套鍵值髓帽。而且文檔型數(shù)據(jù)庫比鍵值數(shù)據(jù)庫的查詢效率更高。如:CouchDB, MongoDb. 國內(nèi)也有文檔型數(shù)據(jù)庫SequoiaDB盼樟,已經(jīng)開源氢卡。
圖形(Graph)數(shù)據(jù)庫
圖形結(jié)構(gòu)的數(shù)據(jù)庫同其他行列以及剛性結(jié)構(gòu)的SQL數(shù)據(jù)庫不同锈至,它是使用靈活的圖形模型晨缴,并且能夠擴展到多個服務(wù)器上。NoSQL數(shù)據(jù)庫沒有標(biāo)準(zhǔn)的查詢語言(SQL)峡捡,因此進行數(shù)據(jù)庫查詢需要制定數(shù)據(jù)模型击碗。許多NoSQL數(shù)據(jù)庫都有REST式的數(shù)據(jù)接口或者查詢API。[2]
??如:Neo4J, InfoGrid, Infinite Graph.
因此们拙,我們總結(jié)NoSQL數(shù)據(jù)庫在以下的這幾種情況下比較適用:1稍途、數(shù)據(jù)模型比較簡單;2砚婆、需要靈活性更強的IT系統(tǒng)械拍;3、對數(shù)據(jù)庫性能要求較高装盯;4坷虑、不需要高度的數(shù)據(jù)一致性;5埂奈、對于給定key迄损,比較容易映射復(fù)雜值的環(huán)境。