1. 程式人生 > >關係型資料庫 與 非關係型資料庫比較

關係型資料庫 與 非關係型資料庫比較

關係型資料庫 與 非關係型資料庫比較

詳細內容檢視我的腦圖

  • 寫在前面 : 許多大型網際網路都會選用MySql+NoSql的組合方案,因為SQL和NoSql都有各自的優缺點

概念

  1. 關係型資料庫是指採用了關係模型來組織資料的資料庫。
    簡單來說,關係模式就是二維表格模型
    主要代表:SQL Server,Oracle,Mysql,PostgreSQL;
  2. 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約束少,所以適合儲存較為簡單的資料,一些不能夠持久化資料

應用場景

  1. 關係型資料庫 : 可以適用於一切要求一致性比較高的系統中(關係型資料庫的最大優點就是事務的一致性)。比如:銀行系統
  2. 非關係型資料庫: 在網頁應用中,對這種一致性的要求不是那麼的嚴格,允許有一定的時間間隔(併發讀寫能力極高)。比如: 微博、facebook

對比選擇

  • 1.關係型資料庫適合儲存結構化資料,比如:使用者的賬號、地址:
    (1)這些資料通常需要做結構化查詢,比如說Join,這個時候,關係型資料庫就要勝出一籌。
    (2)這些資料的規模、增長的速度通常是可以預期的。
    (3)事務性、一致性,適合儲存比較複雜的資料。

  • 2.NoSql適合儲存非結構化資料,比如:文章、評論:
    (1)這些資料通常用於模糊處理,例如全文搜尋、機器學習,適合儲存較為簡單的資料。
    (2)這些資料是海量的,並且增長的速度是難以預期的。
    (3)按照key獲取資料效率很高,但是對於join或其他結構化查詢的支援就比較差。

  • 總結:
    SQL資料庫依然強大,可以可靠的處理事務並保持事務的完整性,只有你的資料非常大,操作擴充套件需要更加分散式的系統時,才考慮NoSql資料庫。

  • 詳細的對比關係圖 (檢視百度腦圖)

    詳細的對比關係圖