四大類NOSQL資料庫

Kiiyan發表於2018-11-27

       NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,泛指非關係型的資料庫。隨著網際網路web2.0網站的興起,傳統的關聯式資料庫在應付web2.0網站,特別是超大規模和高併發的SNS型別的web2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題,而非關係型的資料庫則由於其本身的特點得到了非常迅速的發展。

NoSQL資料庫的四大分類

鍵值儲存資料庫
       這一類資料庫主要會使用到一個雜湊表,這個表中有一個特定的鍵和一個指標指向特定的資料。Key/value模型對於IT系統來說的優勢在於簡單、易部署。但是如果DBA只對部分值進行查詢或更新的時候,Key/value就顯得效率低下了。舉例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.
 
列儲存資料庫
        這部分資料庫通常是用來應對分散式儲存的海量資料。鍵仍然存在,但是它們的特點是指向了多個列。這些列是由列家族來安排的。如:Cassandra, HBase, Riak.
 
文件型資料庫
       文件型資料庫的靈感是來自於Lotus Notes辦公軟體的,而且它同第一種鍵值儲存相類似。該型別的資料模型是版本化的文件,半結構化的文件以特定的格式儲存,比如JSON。文件型資料庫可 以看作是鍵值資料庫的升級版,允許之間巢狀鍵值。而且文件型資料庫比鍵值資料庫的查詢效率更高。如:CouchDB, MongoDb. 國內也有文件型資料庫SequoiaDB,已經開源。
 
圖形(Graph)資料庫
       圖形結構的資料庫同其他行列以及剛性結構的SQL資料庫不同,它是使用靈活的圖形模型,並且能夠擴充套件到多個伺服器上。NoSQL資料庫沒有標準的查詢語言(SQL),因此進行資料庫查詢需要制定資料模型。許多NoSQL資料庫都有REST式的資料介面或者查詢API。如:Neo4J, InfoGrid, Infinite Graph.
 
分類 Examples舉例 典型應用場景 資料模型 優點 缺點
鍵值(key-value) Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB 內容快取,主要用於處理大量資料的高訪問負載,也用於一些日誌系統等等。 Key 指向 Value 的鍵值對,通常用hash table來實現 查詢速度快 資料無結構化,通常只被當作字串或者二進位制資料
列儲存資料庫 Cassandra, HBase, Riak 分散式的檔案系統 以列簇式儲存,將同一列資料存在一起 查詢速度快,可擴充套件性強,更容易進行分散式擴充套件 功能相對侷限
文件型資料庫 CouchDB, MongoDb Web應用(與Key-Value類似,Value是結構化的,不同的是資料庫能夠了解Value的內容) Key-Value對應的鍵值對,Value為結構化資料 資料結構要求不嚴格,表結構可變,不需要像關係型資料庫一樣需要預先定義表結構 查詢效能不高,而且缺乏統一的查詢語法。
圖形(Graph)資料庫 Neo4J, InfoGrid, Infinite Graph 社交網路,推薦系統等。專注於構建關係圖譜 圖結構 利用圖結構相關演算法。比如最短路徑定址,N度關係查詢等 很多時候需要對整個圖做計算才能得出需要的資訊,而且這種結構不太好做分散式的叢集方案。

 
 
 
 

相關文章