谁可以告诉我一些关于内存数据库的情况

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  按照目前内存芯片密度每年2倍的增长速度,在未来10年中,配置1 G或更大的内存将是很平常的事。内存容量的快速增长对数据库管理系统有着深刻的影响。在某些场合,将整个数据库放进内存是可能的,正常的查询处理可以完全脱离硬盘。另外,和传统的数据库应用相比,有大量的新兴应用,目前的内存大小已经足够了。

  (1)增大缓冲池将一个事务所涉及的数据都放在缓冲池中。当采取这种方法的时候,算法优化的目标仍然是最小化磁盘访问。

  (2)常驻内存数据库将整个数据库放进内存中。 这种方法需要重新设计一种数据库管理系统,需要对查询处理、并发控制与恢复的算法和数据结构进行重新设计,以更有效地使用CPU周期和内存。

  内存数据库的索引结构和基于磁盘系统的索引结构不同,面向磁盘的索引结构的目标是最小化磁盘访问次数和空间占用,而面向内存的索引结构全部放在内存中,因此没有磁盘访问次数的最小化。这样,内存索引的目标是减少整体的计算时间同时尽可能少地占用内存。由于关系常驻内存,在索引中没有必要存储真实的属性值,而存储指向元组的指针,当需要的时候通过这些指针能够得到属性值。这样做有4个优点:

  (4)由于单个元组指针提供访问这个元组中的任何字段,采用一种特殊的机制多属性索引的需要将减少。

  内存数据库的总体设计目标是使内存和CPU的利用率尽可能高,而内存数据库的物理组织是实现该目标的基础,其存储结构、索引结构、中间数据存储结构都必须考虑内存的直接存取这一特征,这里介绍几种适合于内存数据库的物理组织方法。

  区-段式组织是基于关系数据模型的。他将存储空间逻辑划分为“分区”,每一个分区存储一个关系。由若干“段”组成,一个段是内存中固定长度的连续区域,相当于“页”,但比页大,是内外存I/O的单位,也是内存空间分配以及内存数据库恢复的单位.

  一个段中的一个数据记录就是一个关系元组。每个记录有一个惟一的标识符RID(Record Identifier),他是一个三元组<P,S,L>,其中P,S,L分别为分区号、段号、段内的记录槽号,记录槽(RecordSlots)包含了对应记录的长度和记录的首地址。这样由RID经分区表和相对应的段表找到相对应的记录槽,按槽中的地址和长度便可直接存取所要的记录。其实,对于内存数据库,存取方法返回的不必是所需的记录数据的副本,只需将其槽中的地址返回即可。

  按影子内存式组织的内存数据库空间可以划分为2部分:一部分是MMDB的主拷贝;另一部分为“影子拷贝”。

  在事务的正常操作期间,每次查询都产生一个分别对于影子内存SM(ShadowMemory)和主拷贝PDB(Primary DataBase)的双地址,且总是先对SM试探,若不成功,再对PDB操作。所有的更新操作都在SM中进行,且都记录在活动日志中(Active Log)。每当一个事务提交时,由他所产生的在SM中的“后映像”拷贝到PDB中。使用影子内存的优点是:

  (2)省去因事务失败或系统故障时的UNDO操 作,只清除相应的影子内存即可。

  (4)缩短恢复过程,这是因为一方面如(2)所述,省去UNDO型操作,只需做REDO型操作;另一方面还可以就当前事务对SM做“部分恢复”以后,就先启动正常事务处理,然后按需要逐步恢复PDB。

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。