4.4.3 内存数据库
关系型数据库处理永久、稳定的数据,内存数据库将数据放在内存中,活动事务只与内存数据打交道,所以数据处理速度得到极大提升。但内存数据库不容易恢复,可能出现暂时不一致或非绝对正确,同时,要求系统拥有较大的内存量,64位操作系统可以支持2 TB级的地址空间,为内存数据库的实现提供了可能。
内存处理可以去除硬盘读写开销,提高处理速度。内存数据库的产生得益于计算机体系结构和硬件技术的巨大发展:GPU多核芯片+多级高速缓存+大容量内存+大容量硬盘SSD。
内存数据库,就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用性能。
内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中,重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统磁盘数据库的数据处理速度要快很多,一般都在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等。
MMDB除了具有一般数据库的特征,还具有自己的特殊性质,其关键技术的实现具有特殊性。MMDB关键技术有:
①数据结构。(https://www.daowen.com)
②MMDB索引技术。
③查询处理与优化。
④事务管理。
⑤并发控制。
⑥数据恢复。
先进的数据库应用程序越来越注重对内存的访问效率,因此高性能的数据库系统必须最大限度地利用处理器缓存,将可能被用到的数据缓存在多层次的缓存中。数据放置的位置对于缓存的利用优化尤其重要。选择好的数据存放方案,改进数据分布的空间局部性,能够提高对缓存的利用率和性能的提升。