NoSQL是什麼?──綜述

“NoSQL指的是非關係型的數據庫。NoSQL也稱作Not Only SQL的縮寫,是對不同於傳統的關係型數據庫的數據庫管理系統的統稱。

What

  • 沒有聲明性查詢語言
  • 沒有預定義模式
  • 存儲方式—鍵值對存儲,列存儲,文檔存儲,圖形數據庫
  • CAP定理,非ACID屬性
  • 高性能,高可用性,和可伸縮性

why

爲什麼要有NoSQL?

NoSQL在內存中保存數據,都具有非常高的讀寫性能,尤其在大數據容量下,同樣表現優秀。這得益於它的無關係性,數據庫的結構簡單。

一般MySQL使用Query Cache,每次表的更新Cache 就失效,是一種大粒度的Cache,在針對web2.0的交互頻繁的應用,Cache性能不高。而NoSQL的Cache是記錄級的,是一種細粒度的Cache,所以NoSQL在這個層面上來說就要性能高很多了

各種類型NoSQL數據比較

分類 Example舉例 典型應用場景 數據模型 優點 缺點
鍵值對 Tokyo,Cabinet/Tyrant,Redis,Voldemort,Oracle BDB 內存緩存,主要用於處理大量數據的高訪問負載,也用於一些日誌系統等等 Key指向Value的鍵值對,通常用hash table來實現 查找速度快 數據無結構化,通常只被當做字符串或二進制數據
列存儲數據庫 Cassandra,HBase,Riak 分佈式的文件系統 以列簇式存儲,將同列數據存在一起 查找速度快,可擴展性強,更容易進行分佈式擴展 功能相對侷限
文檔型數據庫 CouchDB,MongoDB Web應用 Key-Value 數據結構要求不嚴格,表結構可變 查詢性能不高,缺乏統一的查詢語法
圖形數據庫 Neo4J,InfoGrid,Infinite Graph 社交網絡,推薦系統等 圖結構 利用圖結構相關算法 很多時候需要對整個圖做計算

傳統的ACID

  • A(Atomicity) 原子性
  • C(Consistency) 一致性
  • I(Isolation) 獨立性
  • D(Durability) 持久性

CAP

  • C:Consistency(強一致性)
  • A:Availability(可用性)
  • P:Partition tolerance(分區容錯性)

CAP理論是指在分佈式存儲系統中,最多隻能實現上述的兩點,由於網絡硬件延遲丟包,所以P(分區容錯性)是我們所必須要實現的

網站一般實現AP

而Redis、MongoDB則是實現CP

什麼是分佈式系統

由多臺計算機和通信的軟件組件通過計算機網絡連接組成。分佈式系統是建立在網絡之上的軟件系統,正是因爲這樣,所以分佈式系統具有高度的內聚性和透明性。

簡單來說分佈式就是不同的多態服務器部署不同的服務模塊

什麼是集羣

不同的多臺服務器部署相同的服務模塊,通過分佈式調度軟件進行統一的調度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章