1、什麼是nosql
2、mongodb與mysql比較
3、參考文章html
這一類數據庫主要會使用到一個哈希表,這個表中有一個特定的鍵和一個指針指向特定的數據。Key/value模型對於IT系統來講的優點在於簡單、易部署。可是若是DBA只對部分值進行查詢或更新的時候,Key/value就顯得效率低下了mysql
鍵值存儲數據庫
這一類數據庫主要會使用到一個哈希表,這個表中有一個特定的鍵和一個指針指向特定的數據。Key/value模型對於IT系統來講的優點在於簡單、易部署。可是若是DBA只對部分值進行查詢或更新的時候,Key/value就顯得效率低下了。舉例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.sql
列存儲數據庫
這部分數據庫一般是用來應對分佈式存儲的海量數據。鍵仍然存在,可是它們的特色是指向了多個列。這些列是由列家族來安排的。如:Cassandra, HBase, Riak.mongodb
文檔型數據庫
文檔型數據庫的靈感是來自於Lotus Notes辦公軟件的,並且它同第一種鍵值存儲相相似。該類型的數據模型是版本化的文檔,半結構化的文檔以特定的格式存儲,好比JSON。文檔型數據庫可 以看做是鍵值數據庫的升級版,容許之間嵌套鍵值。並且文檔型數據庫比鍵值數據庫的查詢效率更高。如:CouchDB, MongoDb. 國內也有文檔型數據庫SequoiaDB,已經開源。數據庫
圖形(Graph)數據庫
圖形結構的數據庫同其餘行列以及剛性結構的SQL數據庫不一樣,它是使用靈活的圖形模型,而且可以擴展到多個服務器上。NoSQL數據庫沒有標準的查詢語言(SQL),所以進行數據庫查詢須要制定數據模型。許多NoSQL數據庫都有REST式的數據接口或者查詢API。如:Neo4J, InfoGrid, Infinite Graph.
所以,咱們總結NoSQL數據庫在如下的這幾種狀況下比較適用:一、數據模型比較簡單;二、須要靈活性更強的IT系統;三、對數據庫性能要求較高;四、不須要高度的數據一致性;五、對於給定key,比較容易映射覆雜值的環境。json
(1)數據模型比較簡單;
(2)須要靈活性更強的IT系統;
(3)對數據庫性能要求較高;
(4)不須要高度的數據一致性;
(5)對於給定key,比較容易映射覆雜值的環境服務器
(1)Redis
(2)Mongodb
(3)HBase等數據結構
關係型數據庫。
在不一樣的引擎上有不一樣 的存儲方式。
查詢語句是使用傳統的sql語句,擁有較爲成熟的體系,成熟度很高。
開源數據庫的份額在不斷增長,mysql的份額頁在持續增加。
缺點就是在海量數據處理的時候效率會顯著變慢。架構
非關係型數據庫(nosql ),屬於文檔型數據庫。先解釋一下文檔的數據庫,便可以存放xml、json、bson類型系那個的數據。這些數據具有自述性(self-describing),呈現分層的樹狀數據結構。數據結構由鍵值(key=>value)對組成。
存儲方式:虛擬內存+持久化。
查詢語句:是獨特的Mongodb的查詢方式。
適合場景:事件的記錄,內容管理或者博客平臺等等。
架構特色:能夠經過副本集,以及分片來實現高可用。
數據處理:數據是存儲在硬盤上的,只不過須要常常讀取的數據會被加載到內存中,將數據存儲在物理內存中,從而達到高速讀寫。
成熟度與普遍度:新興數據庫,成熟度較低,Nosql數據庫中最爲接近關係型數據庫,比較完善的DB之一,適用人羣不斷在增加。
優點:
快速!在適量級的內存的Mongodb的性能是很是迅速的,它將熱數據存儲在物理內存中,使得熱數據的讀寫變得十分快,
高擴展!
自身的Failover機制!
json的存儲格式!
缺點:主要是無事物機制!nosql