基本概念
數據庫的工作版本(部分或整個數據庫)常駐内存的數據庫。不能存儲在當前内存中的數據仍然需要使用外存來進行存儲,因此内存數據庫仍然可能存在着輸入和輸出。内存數據庫中的活動事務通常隻與實時内存中的數據打交道。基于數據存儲介質的變化,内存數據庫在數據的存儲組織與存取方法、事務處理、并發控制、故障恢複等方面也進行了相應的改進和優化,數據處理速度比傳統數據庫要快很多。
簡介
内存數據庫抛棄了磁盤數據管理的傳統方式,基于全部數據都在内存中重新設計了體系結構,并且在數據緩存、快速算法、并行操作方面也進行了相應的改進,所以數據處理速度比傳統數據庫的數據處理速度要快很多,一般都在10倍以上。内存數據庫的最大特點是其“主拷貝”或“工作版本”常駐内存,即活動事務隻與實時内存數據庫的内存拷貝打交道。
定義:設有數據庫系統DBS,DB為DBS中的數據庫,DBM(t)為在時刻t,DB在内存的數據集,DBM(t)屬于DB。TS為DBS中所有可能的事務構成的集合。AT(t)為在時刻t處于活動狀态的事務集,AT(t)屬于TS。Dt(T)為事務T在時刻t所操作的數據集,Dt(T)屬于DB。若在任意時刻t,均有:任意T屬于AT(t)Dt(T)屬于DBM(t)成立,則稱DBS為一個内存數據庫系統,簡稱為MMDBS;DB為一個内存數據庫,簡稱為MMDB。
常見的例子有MySQL的MEMORY存儲引擎、eXtremeDB、TT、FastDB、SQLite、Microsoft SQL Server Compact等
技術特點
(1)采用複雜的數據模型表示數據結構,數據冗餘小,易擴充,實現了數據共享。
(2)具有較高的數據和程序獨立性,數據庫的獨立性有物理獨立性和邏輯獨立性。
(3)内存數據庫為用戶提供了方便的用戶接口。
(4)内存數據庫提供4個方面的數據控制功能,分别是并發控制、恢複、完整性和安全性。數據庫中各個應用程序所使用的數據由數據庫統一規定,按照一定的數據模型組織和建立,由系統統一管理和集中控制。
(5)增加了系統的靈活性。
存儲問題
要解決持久性問題,内存數據庫也有相應的解決方案。這其中包括在集群裡保存額外的數據副本,然後對數據庫進行橫向擴展,讓系統能夠在運行中不斷将更新數據複制到一個或多個備用系統當中。
一些數據庫系統還會定期将數據複制到磁盤系統,就是為了應對上述突然斷電或系統宕機的情況。當然這時候就要在額外的負載和數據可恢複性方面做出權衡。
由于内存數據庫的風險比傳統OLTP數據庫要大,所以要對它所支撐的應用系統有一個更清楚的認識。目前從整體來看,傳統的OLTP應用系統往往會避免使用内存數據庫技術,它更多地應用在特定的數據類型或者分析應用(包括批處理報表系統)當中,這些系統的數據遠沒有OLTP系統重要。
另一方面也是出于成本預算的考慮,DRAM相比于傳統磁盤甚至閃存來說都是更昂貴的。



















