云計算背后的秘密(6)-NoSQL數據庫綜述(1) |
發布時間: 2012/9/15 18:15:15 |
我本來一直覺得NoSQL其實很容易理解的,我本身也已經對NoSQL有了非常深入的研究,但是在最近準備YunTable的Chart的時候,發現NoSQL不僅非常博大精深,而且我個人對NoSQL的理解也只是皮毛而已,但我還算是一個“知恥而后勇”的人,所以經過一段時間的學習之后,從本系列第六篇開始,就將和大家聊聊NoSQL,而本篇將主要給大家做一下NoSQL數據庫的綜述。 首先將和大家聊聊為什么NoSQL會在關系型數據庫已經非常普及的情況下異軍突起? 誕生的原因 隨著互聯網的不斷發展,各種類型的應用層出不窮,所以導致在這個云計算的時代,對技術提出了更多的需求,主要體現在下面這四個方面: 1. 低延遲的讀寫速度:應用快速地反應能極大地提升用戶的滿意度; 2. 支撐海量的數據和流量:對于搜索這樣大型應用而言,需要利用PB級別的數據和能應對百萬級的流量; 3. 大規模集群的管理:系統管理員希望分布式應用能更簡單的部署和管理; 4. 龐大運營成本的考量:IT經理們希望在硬件成本、軟件成本和人力成本能夠有大幅度地降低; 雖然關系型數據庫已經在業界的數據存儲方面占據不可動搖的地位,但是由于其天生的幾個限制,使其很難滿足上面這幾個需求: 1. 擴展困難:由于存在類似Join這樣多表查詢機制,使得數據庫在擴展方面很艱難; 2. 讀寫慢:這種情況主要發生在數據量達到一定規模時由于關系型數據庫的系統邏輯非常復雜,使得其非常容易發生死鎖等的并發問題,所以導致其讀寫速度下滑非常嚴重; 3. 成本高:企業級數據庫的License價格很驚人,并且隨著系統的規模,而不斷上升; 4. 有限的支撐容量:現有關系型解決方案還無法支撐Google這樣海量的數據存儲; 業界為了解決上面提到的幾個需求,推出了多款新類型的數據庫,并且由于它們在設計上和傳統的NoSQL數據庫相比有很大的不同,所以被統稱為“NoSQL”系列數據庫。總的來說,在設計上,它們非常關注對數據高并發地讀寫和對海量數據的存儲等,與關系型數據庫相比,它們在架構和數據模型方量面做了“減法”,而在擴展和并發等方面做了“加法”。現在主流的NoSQL數據庫有BigTable、HBase、Cassandra、SimpleDB、CouchDB、MongoDB和Redis等。接下來,將關注NoSQL數據庫到底存在哪些優缺點。 本文出自:億恩科技【www.laynepeng.cn】 |