时间:2022-11-04 22:30:01 | 来源:信息时代
时间:2022-11-04 22:30:01 来源:信息时代
内存数据库 : 视为数据库的“工作版本”(部分或整个数据库)常驻内存的数据库。MMDB并不要求能容纳整个数据库的大内存,只要随时能存储当前处理的数据即可。不能存放在内存的数据及用于恢复的数据(备份、日志等)还是要用外存来存储,因此MMDB还是要进行I/O处理。但MMDB已不是传统磁盘数据库的概念,而且有关MMDB的技术、方法与策略与传统数据库都不一样。近年来,廉价、存储量大、性能高的半导体内存的发展和数据库的各种高新应用的需求,大大促进了MMDB技术的研究与发展。时至今日,人们已对它的体系结构,数据组织与存取方法、事务处理、并发控制、恢复技术等方面进行了大量的探讨与研究,取得了丰富的成果。
在存取方法方面,人们开发了许多新的、适合于内存数据库的数据存储组织与索引结构及存取策略,如“多目录hash”结构、T-树索引等。在事务及查询处理方面,深入研究了事务提交、记日志、查询优化(尤其是连接查询优化)等方法,开发了诸如“提前提交”等策略与技术。在并发控制方面,提出了二级层次封锁方案、乐观并发控制法、基于可扩展hashing技术使用的方法等。在内存数据库的恢复方面,集中研究了检验点操作及相应日志的记录、内存数据库装入与重装等策略,如Fuzzy(模糊)检验点策略、Blank/White(黑/白)策略、Copy-on-Update(变更拷贝)检验点策略等。在内存数据库所特有的内存数据装入方面,开发了如有序装入、带优先级的有序装入、考虑存取频率的装入,以及组合优先、频率等的所谓“聪明”装入等策略。
关于什么是内存数据库,曾有过多种不同的说法或定义,如“内存足够大以容纳所有数据,整个数据库在内存,对数据的存取无需I/O”; “内存不必足够大到容纳整个数据库,但数据被存取时,先已进入内存,数据库的存取在内存进行”; “数据库常驻磁盘,在一个事务执行前,它要求的所有数据都已先取到内存,提交时其变更反映到磁盘”等。
显然,MMDB的定义不应涉及内存的大小、存取数据所需I/O的多少、数据何时进入及怎样才留驻内存等这样一些具体的实现技术,而只包含数据库持久留驻内存(而不是磁盘)、事务(不是系统)的数据存取只涉及内存的意思。依此,给出MMDB的定义如下:
设有数据库系统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。