關系型數據庫和NOSQL數據庫對比


詳見:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt328

關系型數據庫,是建立在關系模型基礎上的數據庫,其借助於集合代數等數學概念和方法來處理數據庫中的數據。主流的 oracle、DB2、MS SQL Server和mysql都屬於這類傳統數據庫。

NoSQL數據庫,全稱為Not Only SQL,意思就是適用關系型數據庫的時候就使用關系型數據庫,不適用的時候也沒有必要非使用關系型數據庫不可,可以考慮使用更加合適的數據存儲。主要分為臨時性鍵值存儲(memcached、Redis)、永久性鍵值存儲(ROMA、Redis)、面向文檔的數據庫(MongoDB、CouchDB)、面向列的數據庫(Cassandra、HBase),每種NoSQL都有其特有的使用場景及優點。

oracle,mysql等傳統的關系數據庫非常成熟並且已大規模商用,為什么還要用NoSQL數據庫呢?主要是由於隨着互聯網發展,數據量越來越大,對性能要求越來越高,傳統數據庫存在着先天性的缺陷,即單機(單庫)性能瓶頸,並且擴展困難。這樣既有單機單庫瓶頸,卻又擴展困難,自然無法滿足日益增長的海量數據存儲及其性能要求,所以才會出現了各種不同的NoSQL產品,NoSQL根本性的優勢在於在雲計算時代,簡單、易於大規模分布式擴展,並且讀寫性能非常高。

下面分析下兩者的特點,及優缺點:

關系型數據庫

<1>關系數據庫的特點是:

- 數據關系模型基於關系模型,結構化存儲,完整性約束。

- 基於二維表及其之間的聯系,需要連接、並、交、差、除等數據操作。

- 采用結構化的查詢語言(SQL)做數據讀寫。

- 操作需要數據的一致性,需要事務甚至是強一致性。

<2>優點:

- 保持數據的一致性(事務處理)

- 可以進行join等復雜查詢。

- 通用化,技術成熟。

<3>缺點:

- 數據讀寫必須經過sql解析,大量數據、高並發下讀寫性能不足。

- 對數據做讀寫,或修改數據結構時需要加鎖,影響並發操作。

- 無法適應非結構化存儲。

- 擴展困難。

- 昂貴、復雜。

NoSQL數據庫

<1>NoSQL數據庫的特點是:

- 非結構化的存儲。

- 基於多維關系模型。

- 具有特有的使用場景。

<2>優點:

- 高並發,大數據下讀寫能力較強。

- 基本支持分布式,易於擴展,可伸縮。

- 簡單,弱結構化存儲。

<3>缺點:

- join等復雜操作能力較弱。

- 事務支持較弱。

- 通用性差。

- 無完整約束復雜業務場景支持較差。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM