關係型資料庫只是資料庫的乙個特例,型別有嚴格的限制。科學家們用形式化定義了關係以及各種運算,讓它們看起來高大上,但是沒什麼卵用。然後又製造出各種正規化包括白痴nf來簡化資料庫,殊不知不用關係型即可提高效率。然後就有了所謂的nosql,其實這是一種復古。或許人們以後就會發現純粹的kv儲存也有不能滿足的需求而製造其他儲存方式吧。
非關係型資料庫的優勢:
1. 效能
nosql是基於鍵值對的,可以想象成表中的主鍵和值的對應關係,而且不需要經過sql層的解析,所以效能非常高。
2. 可擴充套件性
同樣也是因為基於鍵值對,資料之間沒有耦合性,所以非常容易水平擴充套件。
關係型資料庫的優勢:
1. 複雜查詢
可以用sql語句方便的在乙個表以及多個表之間做非常複雜的資料查詢。
2. 事務支援
使得對於安全效能很高的資料訪問要求得以實現。
對於這兩類資料庫,對方的優勢就是自己的弱勢,反之亦然。
但是近年來這兩種資料庫都在向著另外乙個方向進化。例如:
nosql資料庫慢慢開始具備sql資料庫的一些複雜查詢功能的雛形,比如couchbase的index以及mongo的複雜查詢。對於事務的支援也可以用一些系統級的原子操作來實現例如樂觀鎖之類的方法來曲線救國。
sql資料庫也開始慢慢進化,比如handlersocker技術的實現,可以在mysql上實現對於sql層的穿透,用nosql的方式訪問資料庫,效能可以上可以達到甚至超越nosql資料庫。可擴充套件性上例如perconaserver,可以實現無中心化的集群。
雖然這兩極都因為各自的弱勢而開始進化出另一極的一些特性,但是這些特性的增加也會消弱其本來具備的優勢,比如couchbase上的index的增加會逐步降低資料庫的讀寫效能。所以怎樣構建系統的短期和長期儲存策略,用好他們各自的強項是架構師需要好好考慮的重要問題。
關係型資料庫和非關係型資料庫
關係型資料庫 mysql oracle等 非關係型資料庫 nosql hbase,mongodb,redis等 優勢 可以在乙個表以及多個表之間做複雜的資料查詢 支援事務,保持資料的一致性。優勢 基於鍵值對,不需要經過sql解析,資料之間沒有耦合,易水平擴充套件。資料儲存在快取中,查詢速度快。可以儲...
關係型資料庫和非關係型資料庫
關聯式資料庫是資料項之間具有預定義關係的資料項的集合。這些項被組織為一組具有列和行的表。表用於儲存有關要在資料庫中表示的物件的資訊。表中的每列都儲存著特定型別的資料,字段儲存著屬性的實際值。表中的行表示乙個物件或實體的相關值的集合。表中的每一行可標有乙個稱為主鍵的唯一識別符號,並且可使用外來鍵在多個...
關係型資料庫和非關係型資料庫
關係型資料庫 採用了關係模型來組織資料的資料庫 代表 sql server,mysql,oracle 優點 容易理解,二維表的結構貼近現實世界 使用方便,通用的sql語句使得操作關係型資料庫非常方便 易於維護,資料庫的acid屬性,大大降低了資料冗餘和不一致性 缺點 讀寫效能差,尤其是海量資料的高效...