關係型資料庫 與 非關係型資料庫比較
阿新 • • 發佈:2018-12-05
關係型資料庫 與 非關係型資料庫比較
詳細內容檢視我的腦圖
- 寫在前面 : 許多大型網際網路都會選用MySql+NoSql的組合方案,因為SQL和NoSql都有各自的優缺點
概念
- 關係型資料庫是指採用了關係模型來組織資料的資料庫。
簡單來說,關係模式就是二維表格模型 ,
主要代表:SQL Server,Oracle,Mysql,PostgreSQL; - NoSQL非關係型資料庫,主要指那些非關係型的、分散式的,且一般不保證ACID的數 據儲存系統,
NoSQL提出了另一種理念,以鍵值來儲存,且結構不穩定,
主要代表 : MongoDB,Redis、CouchDB。
優缺點
1.關係型資料庫:
1.1:優: (1)容易理解,二維表的結構非常貼近現實世界,二維表格,容易理解。 (2)使用方便,通用的sql語句使得操作關係型資料庫非常方便。 (3)易於維護,資料庫的ACID屬性,大大降低了資料冗餘和資料不一致的概率。 1.2:缺: (1)海量資料的讀寫效率。 對於網站的併發量高,往往達到每秒上萬次的請求,對於傳統關係型資料庫來說,對於硬碟效能是一個很大的挑戰。 (2) 高擴充套件性和可用性。 在基於web的結構中,資料庫是最難以橫向拓展的,當一個應用系統的使用者量和訪問量與日俱增的時候,資料庫沒有辦法像web Server那樣簡單的通過新增更多的硬體和服務節點來拓展效能和負載能力。
2.非關係型資料庫:
2.1:優:
(1)面向高效能併發讀寫的key-value資料庫,主要特點是具有極高的併發讀寫效能
(2)面向海量資料訪問的面向文件資料庫,特點是,可以在海量的資料庫快速的查詢資料
(3)面向可拓展的分散式資料庫,解決的主要問題是傳統資料庫的擴充套件性上的缺陷。
2.2:缺:
由於Nosql約束少,所以適合儲存較為簡單的資料,一些不能夠持久化資料
應用場景
- 關係型資料庫 : 可以適用於一切要求一致性比較高的系統中(關係型資料庫的最大優點就是事務的一致性)。比如:銀行系統
- 非關係型資料庫: 在網頁應用中,對這種一致性的要求不是那麼的嚴格,允許有一定的時間間隔(併發讀寫能力極高)。比如: 微博、facebook
對比選擇
-
1.關係型資料庫適合儲存結構化資料,比如:使用者的賬號、地址:
(1)這些資料通常需要做結構化查詢,比如說Join,這個時候,關係型資料庫就要勝出一籌。
(2)這些資料的規模、增長的速度通常是可以預期的。
(3)事務性、一致性,適合儲存比較複雜的資料。 -
2.NoSql適合儲存非結構化資料,比如:文章、評論:
(1)這些資料通常用於模糊處理,例如全文搜尋、機器學習,適合儲存較為簡單的資料。
(2)這些資料是海量的,並且增長的速度是難以預期的。
(3)按照key獲取資料效率很高,但是對於join或其他結構化查詢的支援就比較差。 -
總結:
SQL資料庫依然強大,可以可靠的處理事務並保持事務的完整性,只有你的資料非常大,操作擴充套件需要更加分散式的系統時,才考慮NoSql資料庫。 -
詳細的對比關係圖 (檢視百度腦圖)