磁碟資料庫與記憶體資料庫的特點比較

WytheHard發表於2018-03-06

歡迎關注公眾號:吳先生的伊甸園

典型的磁碟資料庫就是最常用的 Oracle,Mysql等。典型的記憶體資料庫如 Redis。
這倆種資料庫的比較如下:
傳統磁碟資料庫的優點
– 傳統資料庫的ACID機制成熟、可靠;
– 提供強大的資料定義語言(DDL)及資料操作語言(DML),提供 SQL 支援;
– 提供一定的主動機制(如觸發器,Trigger)和後臺資料處理能力(如存 儲過程,Stored Procedure)。
傳統磁碟資料庫的主要缺陷
– 佔用、消耗的系統資源較多;
– 資料存取的速度慢;
– 資料存取時間不一致且難以預測
記憶體資料庫的突出優勢
– 存取速度快速、一致
– 存取時間易於預測
– 易於定製資料存取方式
記憶體資料庫的主要特點
– 為了降低MMDB的記憶體開銷,MMDB往往簡化了對複雜事務處理的支援,如MMDB一般不提供事務的undo機制,代之以“補償事務”的方式來實現事務處理的原子性和一致性。
– 由於MMDB中的資料庫“主拷貝”在記憶體中,因此,MMDB對系統的故障恢復提出了更高的要求,實現起來難度更大。
– 通用性不強,由於不同的實時應用系統中的資料物件不同,對資料庫的 訪問要求及訪問方式不同。為了提高資料庫的實時性,在設計MMDB時,需要根據應用特點,採取一些針對性的措施。因此,設計上往往有一定的特殊性。

此外,我們需要理解的是:
磁碟資料庫會花費更多的心思在於減少磁碟 I/O ,優化出更高效的快取技術。因為磁碟的讀寫速度過慢,所以優化策略主要在於磁碟和記憶體資料交換上。包括各式各樣的索引,資料快取等手段都是為了上述目的。
對於記憶體資料庫,更多的是減少硬碟和 cpu 之間的速度不平衡問題,更多的思考如何提高資料庫的儲存時間。

傳統磁碟資料庫系統的資料組織、訪問方法、查詢處理演算法的設計都針對減少磁碟訪問次數與有效利用盤儲存空間,甚至犧牲CPU時間來減少I/O次數(如查詢處理有大量中間資料),而記憶體資料庫的設計則主要考慮如何有效地利用CPU的時間和記憶體空間。 refer:https://wenku.baidu.com/view/43018b41b307e87101f69621

最後再貼一張圖,對比一下倆類資料庫的不同


相關文章