内存数据库中的索引技术.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内存数据库中的索引技术 引言 传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称作磁盘数据库(DRDB: Disk-ResidentDatabase)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,磁盘的读写速度远 远小于CPU处理数据的速度,所以磁盘数据库的瓶颈出现在磁盘读写上。 基于此,内存数据库的概念被提出来了。内存数据库(MMDB:MainMemoryDatabase,也叫主存数 据库)[1],就是将数据全部或者大部分放在内存中进行操作的数据库管理系统,对查询处理、并发控 制与恢复的算法和数据结构进行重新设计,以更有效地使用CPU周期和内存。相对于磁盘,内存的数 据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。 近十几年来,内存的发展一直遵循摩尔定律[2],内存的价格一直下降,而内存的容量一直在增 加。现在的主流服务器,几百GB或者几TB 的内存都很常见,内存的发展使得内存数据库得以实现。 由于内存数据库与传统的磁盘数据库在设计和架构上都大不相同,所以传统的数据库索引不适用 于内存数据库。研究者为改进内存数据库的索引结构做了相当多的研究跟工作。其中,影响较大的索 引有早期的T树、基于缓存敏感(cacheconscious)的CSS/CSB+树,Trie-tree和Hash等等。本文就 这几种有代表性的索引算法进行研究和分析,为进一步改进内存数据库索引算法和提高索引性能打下 坚实的基础。 2、T-tree 2.1 T-tree T-tree是针对主存访问优化的索引技术[3]。T-tree是一种一个节点中包含多个索引条目的平衡 二叉树,T-tree 的索引项无论是从大小还是算法上都比B-tree精简得多。T-tree 的搜索算法不分搜 索的值在当前的节点还是在内存中的其他地方,每访问到一个新的索引节点,索引的范围减少一半。 图2-1T-Tree的结点 T-tree索引用来实现关键字的范围查询。T-tree是一棵特殊平衡的二叉树 (AVL),它的每个节 点存储了按键值排序的一组关键字。T-tree 除了较高的节点空间占有率,遍历一棵树的查找算法在 复杂程度和执行时间上也占有优势。现在T-tree 己经成为内存数据库中最主要的一种索引方式。 T-tree具有以下特点:1)左子树与右子树之差不超过1,2)在一个存储节点可以保存多个键值, 它的最左与最右键值分别为这个节点的最小与最大键值,它的左子树仅仅包含那些键值小于或等于最 小键值的一记录,同理右子树只包括那些键值大于或等于最大键值的记录,3)同时拥有左右子树的 节点被称为内部节点,只拥有一个子树的节点被称为半叶节点,没有子树的节点被称为叶子,4)为 了保持空间的利用率,每一个内部节点都需要包含一个最小数目的键值。由此可知T-tree是一个每 个结点含有多个关键字的平衡二叉树,每个节点内的关键字有序排列,左子树都要比根节点关键字小, 右子树都要比根节点关键字大。 在上述T-tree结点结构中,包含如下信息: (1)balance(平衡因子),其绝对值不大于1,balance=右子树高度-左子树高度; (2)Left_child_ptr和Right_child_ptr分别表示当前结点的左子树和右子树指针; (3)Max_Item表示结点中所能容纳的键值的最大数; (4)Key[0]至K[Max_Item-1]为结点内存放的关键字; (5)nItem是当前节点实际存储的关键字个数。 对于T-tree有如下特征: (1)与AVL树相似,T-tree 中任何结点的左右子树的高度之差最大为1; (2)与AVL树不同,T-tree 的结点中可存储多个键值,并且这些键值排列有序; (3)T-tree结点的左子树中容纳的键值不大于该结点中的最左键值;右子树中容纳的键值不小于 该结点中的最右键值; (4)为了保证每个结点具有较高的空间占用率,每个内部结点所包含的键值数目必须不小于某个 指定的值,通常为(Max_Item-2)(Max_Item为结点中最大键值目)。 2.2 T-tree索引的操作 用T-tree作为索引方式主要完成三个工作:查找,插入,删除。其中插入和删除都是以查找为 基础。下面分别介绍三种操作的流程。 2.2.1 查找 T-tre

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档