一:概念 SQL(Structured Query Language):資料庫,指關係型資料庫。主要代表:SQL Server、Oracle、MySQL、PostgreSQL。 NoSQL(Not Only SQL):泛指非關係型資料庫。主要代表:MongoDB、Redis、CouchDB。 New ...
一:概念
SQL(Structured Query Language):資料庫,指關係型資料庫。主要代表:SQL Server、Oracle、MySQL、PostgreSQL。
NoSQL(Not Only SQL):泛指非關係型資料庫。主要代表:MongoDB、Redis、CouchDB。
NewSQL:對各種新的可擴展/高性能資料庫的簡稱。主要代表:Clustrix、GenieDB。
二:對比
SQL:
好處來源於它的統一性和易用性,缺點是面對大量的數據時,他的性能會隨著資料庫的增大而急劇下降。
NoSQL:
以放寬ACID原則為代價,NoSQL採取的是最終一致性原則,而不是像關係型資料庫那樣地嚴格遵守著ACID的原則,這意味著如果在特定時間段內沒有特定數據項的更新,則最終對其所有的訪問都將返回最後更新的值。 這就是這樣的系統通常被描述為提供基本保證的原因(基本可用,軟狀態,最終一致性) — 而不是ACID。
NewSQL:
NewSQL選擇汲取了SQL和NewSQL的優點,希望將ACID和可擴展性以及高性能結合,但是目前而言,不適用於所有的場景。
三:Let's think
根據CAP原則,
- Consistency(一致性)
- Availability(可用性)
- Partition tolerance(分區容錯)
這三點不能夠同時做到,所以我們可以猜想,未來的很多年裡,是不會有這樣一個能夠滿足所有場景的資料庫存在,現在主流的關係型資料庫+NoSQL的組合是一種解決方案,不斷涌現出來的NewSQL也能夠滿足一定場景中的業務需求。