關係型數據庫 SQLite、Oracle、mysql |
1、關係型數據庫,是指採用了關係模型來組織 數據的數據庫; 2、關係型數據庫的最大特點就是事務的一致性; 3、簡單來說,關係模型指的就是二維表格模型, 而一個關係型數據庫就是由二維表及其之間的聯繫所組成的一個數據組織。 |
1、容易理解:二維表結構是非常貼近邏輯世界一個概念,關係模型相對網狀、層次等其他模型來說更容易理解; 2、使用方便:通用的SQL語言使得操作關係型數據庫非常方便; 3、易於維護:豐富的完整性(實體完整性、參照完整性和用戶定義的完整性)大大減低了數據冗餘和數據不一致的概率; 4、支持SQL,可用於複雜的查詢。 |
1、爲了維護一致性所付出的巨大代價就是其讀寫性能比較差; 2、固定的表結構;3、高併發讀寫需求; 4、海量數據的高效率讀寫; |
非關係型數據庫 MongoDb、redis、HBase |
1、使用鍵值對存儲數據; 2、分佈式; 3、一般不支持ACID特性; 4、非關係型數據庫嚴格上不是一種數據庫,應該是一種數據結構化存儲方法的集合。 |
1、無需經過sql層的解析,讀寫性能很高; 2、基於鍵值對,數據沒有耦合性,容易擴展; 3、存儲數據的格式:nosql的存儲格式是key,value形式、文檔形式、圖片形式等等,文檔形式、圖片形式等等,而關係型數據庫則只支持基礎類型。 |
1、不提供sql支持,學習和使用成本較高; 2、無事務處理,附加功能bi和報表等支持也不好; |
注1:數據庫事務必須具備ACID特性,ACID是Atomic原子性,Consistency一致性,Isolation隔離性,Durability持久性。
注2:數據的持久存儲,尤其是海量數據的持久存儲,還是需要一種關係數據庫。