NoSQL選型

傳統「關係型數據庫」在應付互聯網WEB2.0應用已顯示的力不從心,由其是超大規模和高併發的SNS類型的WEB2.0網站。主要須要應對如下三方面難題:數據庫

一、對數據庫高併發讀寫的要求。json

二、對數據庫高可擴展性和高可用性的要求。併發

三、對海量數據高效存儲和訪問的要求。分佈式

 

」關係型數據庫「固有的特性的確用處不大高併發

一、對數據庫事務一致性要求低。不少WEB應用不要求嚴格的數據庫事務,有些對讀一致性要求不高,更有些對寫一致性也要求不高。性能

二、對數據庫寫實時性和讀實時性要求低。如發送消息給訂閱者,能夠接受延遲。網站

三、對複雜SQL查詢的要求低。如很是忌諱多張大表關聯查詢。spa

 

爲了解決以上問題,」非關係型數據庫「(NoSql -- not only SQL)應運而生,再很短的時間內涌現出衆多的NoSQL產品。他們各有各的適用場景,你是否對這些特性有所瞭解?你是否在選型時一片茫然? 本文將解答你的疑惑,幫助你選擇正確的NoSQL產品,讓你少走些彎路。設計

NoSQL數據庫分類:xml

一、key-value存儲型--知足極高讀寫要求。 

二、文檔存儲型--海量存儲和訪問的數據庫。

三、列存儲型--高可擴展性,可用性,面向分佈式計算的數據庫。

四、圖存儲型--適合存儲關係

類型

部分表明

特色

列存儲

Hbase

Cassandra

Hypertable

顧名思義,是按列存儲數據的。最大的特色是方便存儲結構化和半結構化數據,方便作數據壓縮,對針對某一列或者某幾列的查詢有很是大的IO優點。

文檔存儲

MongoDB

CouchDB

文檔存儲通常用相似json的格式存儲,存儲的內容是文檔型的。這樣也就有有機會對某些字段創建索引,實現關係數據庫的某些功能。

key-value存儲

Tokyo Cabinet / Tyrant

Berkeley DB

MemcacheDB

Redis

能夠經過key快速查詢到其value。通常來講,存儲無論value的格式,照單全收。(Redis包含了其餘功能)

圖存儲

Neo4J

FlockDB

InfoGrid

圖形關係的最佳存儲。使用傳統關係數據庫來解決的話性能低下,並且設計使用不方便。

對象存儲

db4o

Versant

經過相似面嚮對象語言的語法操做數據庫,經過對象的方式存取數據。

xml數據庫

Berkeley DB XML

BaseX

高效的存儲XML數據,並支持XML的內部查詢語法,好比XQuery,Xpath。

相關文章
相關標籤/搜索