一种数据库索引构建方法及装置制造方法及图纸

技术编号:39247655 阅读:9 留言:0更新日期:2023-10-30 11:59
本发明专利技术提供一种数据库索引构建方法及装置,属于信息存储技术领域,方法包括:在接收到数据插入请求的情况下,将待插入数据插入待插入的位置,若第一检测的检测结果为全局索引的节点增加,基于动态随机存储器的地址空间为新增节点分配所需的地址空间,若第二检测的检测结果为新增节点的父节点位于非易失存储器中,将新增节点插入到快捷索引中;若动态随机存取存储器的已用空间占比达到预设比例,将新增节点由动态随机存储器的地址空间迁移至非易失存储器的地址空间;其中,全局索引以及快捷索引均采用跳表数据结构。本发明专利技术采用跳表数据结构,优化了内存型数据库的索引结构,在保证高数据响应速度的前提下减少索引对DRAM的空间消耗。消耗。消耗。

【技术实现步骤摘要】
一种数据库索引构建方法及装置


[0001]本专利技术涉及信息存储
,尤其涉及一种数据库索引构建方法及装置。

技术介绍

[0002]随着云计算场景中数据规模的扩大,内存型数据库运行时所需承载的数据内存总量也不断增大。由于内存数据库的性能直接受限于其可使用的内存空间大小,当数据规模超过内存数据库可用的内存容量时,数据库管理者只能选择增大存储成本以购置额外的硬件设备来提高DRAM(Dynamic Random Access Memory,动态随机存取存储器)容量,或者牺牲性能将部分数据驱逐到磁盘中。
[0003]为了减少因数据规模超过可用内存容量而导致的数据库系统性能退化的问题,许多工作围绕利用数据访问的局部性特征来对数据分区存储,将冷数据从DRAM移动到二级存储介质中。然而,尽管冷数据已经从DRAM中删除,但数据库系统还需要将所有的索引保留在内存中。而索引所占的DRAM空间消耗有时候会达到数据库总空间消耗的一半以上,故如何在保证高数据响应速度的前提下减少索引对DRAM的空间消耗是当下热门的研究问题。

技术实现思路

[0004]有鉴于此,本专利技术提供一种数据库索引构建方法及装置,用于在保证数据的响应速度的前提下解决目前索引占用DRAM过多空间,导致DRAM资源浪费的问题。
[0005]为解决上述技术问题,第一方面,本专利技术提供一种数据库索引构建方法,应用于包括动态随机存取存储器和非易失存储器的混合内存系统,该方法包括:
[0006]在接收到数据插入请求的情况下,在全局索引中定位待插入数据待插入的位置,将所述待插入数据插入所述待插入的位置,对所述全局索引的节点是否增加进行第一检测;
[0007]若所述第一检测的检测结果为所述全局索引的节点增加,基于动态随机存储器的地址空间为新增节点分配所需的地址空间,对所述新增节点的父节点的位置进行第二检测,若所述第二检测的检测结果为所述新增节点的父节点位于所述非易失存储器中,将所述新增节点插入到快捷索引中;
[0008]获取所述动态随机存取存储器的已用空间占比,若所述动态随机存取存储器的已用空间占比达到预设比例,基于非易失存储器的地址空间为新增节点分配所需的地址空间,以将所述新增节点由所述动态随机存储器的地址空间迁移至所述非易失存储器的地址空间;
[0009]其中,所述全局索引以及所述快捷索引均采用跳表数据结构。
[0010]可选地,所述在接收到数据插入请求的情况下,在全局索引中定位待插入数据待插入的位置包括:
[0011]根据起始节点的高度,设置当前节点高度,并以所述起始节点为初始的当前节点;
[0012]获取步骤:根据所述当前节点高度,从所述当前节点开始获取下一个节点作为新
的当前节点;
[0013]若当前节点不为空指针且对应的键值小于所述待插入数据的搜索码,则将所述当前节点高度减去预设数值,执行所述获取步骤直至当前节点为空指针或对应的键值小于所述待插入数据的搜索码,对所述当前节点的父节点组数是否为空指针进行第一核验;
[0014]若所述第一核验的核验结果为所述当前节点的父节点组数不为空指针,对所述当前节点高度是否为零进行第二核验,若所述第二核验的核验结果为所述当前节点高度为零,返回所述当前节点并结束定位;若所述第二核验的核验结果为所述当前节点高度不为零,将所述当前节点高度减去预设数值,执行所述获取步骤直至所述当前节点高度为零。
[0015]可选地,所述若所述第二检测的检测结果为所述新增节点的父节点位于所述非易失存储器中,将所述新增节点插入到快捷索引中包括:
[0016]将当前节点设置为跳表头,将当前节点高度设置为随机高度;
[0017]若当前节点高度超过所述非易失存储器允许的最大高度,得到所述当前节点高度超过所述非易失存储器允许的最大高度的超出部分,将所述超出部分对应的父节点数组索引的每一项设置为跳表头,将所述非易失存储器允许的最大高度设置为当前节点高度。
[0018]可选地,基于非易失存储器的地址空间为所述新增节点分配所需的地址空间,以将所述新增节点由所述动态随机存储器的地址空间迁移至所述非易失存储器的地址空间包括:
[0019]若所述新增节点的父节点在所述动态随机存取存储器中具有后继节点,则将所述后继节点确定为目标节点,基于非易失存储器的地址空间为所述目标节点分配所需的地址空间,将所述目标节点由所述动态随机存储器的地址空间迁移至所述非易失存储器的地址空间。
[0020]可选地,基于非易失存储器的地址空间为所述新增节点分配所需的地址空间,以将所述新增节点由所述动态随机存储器的地址空间迁移至所述非易失存储器的地址空间包括:
[0021]递进步骤:逐一获取所述后继节点作为当前节点;
[0022]若当前节点的高度小于所述新增节点在所述非易失存储器中的父节点的高度,则将当前节点迁移到所述非易失存储器中,执行所述递进步骤直至当前节点的高度大于或等于所述非易失存储器中的父节点的高度。
[0023]第二方面,本专利技术提供一种数据库索引构建装置,应用于包括动态随机存取存储器和非易失存储器的混合内存系统,所述装置包括:
[0024]第一插入模块,用于在接收到数据插入请求的情况下,在全局索引中定位待插入数据待插入的位置,将所述待插入数据插入所述待插入的位置,对所述全局索引的节点是否增加进行第一检测;
[0025]第二插入模块,用于若所述第一检测的检测结果为所述全局索引的节点增加,基于动态随机存储器的地址空间为新增节点分配所需的地址空间,对所述新增节点的父节点的位置进行第二检测,若所述第二检测的检测结果为所述新增节点的父节点位于所述非易失存储器中,将所述新增节点插入到快捷索引中;
[0026]迁移模块,用于获取所述动态随机存取存储器的已用空间占比,若所述动态随机存取存储器的已用空间占比达到预设比例,基于非易失存储器的地址空间为新增节点分配
所需的地址空间,以将所述新增节点由所述动态随机存储器的地址空间迁移至所述非易失存储器的地址空间;
[0027]其中,所述全局索引以及所述快捷索引均采用跳表数据结构。
[0028]可选地,所述第一插入模块包括:
[0029]第一获取单元,用于根据起始节点的高度,设置当前节点高度,并以所述起始节点为初始的当前节点;
[0030]第二获取单元,用于获取步骤:根据所述当前节点高度,从所述当前节点开始获取下一个节点作为新的当前节点;
[0031]定位单元,用于若当前节点不为空指针且对应的键值小于所述待插入数据的搜索码,则将所述当前节点高度减去预设数值,执行所述获取步骤直至当前节点为空指针或对应的键值小于所述待插入数据的搜索码,对所述当前节点的父节点组数是否为空指针进行第一核验;
[0032]所述定位单元,还用于若所述第一核验的核验结果为所述当前节点的父节点组数不为空指针,对所述当前节点高度是否为零进行第二核验,若所述第二核验的核验结果为所述当前节点高度为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库索引构建方法,其特征在于,应用于包括动态随机存取存储器和非易失存储器的混合内存系统,所述方法包括:在接收到数据插入请求的情况下,在全局索引中定位待插入数据待插入的位置,将所述待插入数据插入所述待插入的位置,对所述全局索引的节点是否增加进行第一检测;若所述第一检测的检测结果为所述全局索引的节点增加,基于动态随机存储器的地址空间为新增节点分配所需的地址空间,对所述新增节点的父节点的位置进行第二检测,若所述第二检测的检测结果为所述新增节点的父节点位于所述非易失存储器中,将所述新增节点插入到快捷索引中;获取所述动态随机存取存储器的已用空间占比,若所述动态随机存取存储器的已用空间占比达到预设比例,基于非易失存储器的地址空间为所述新增节点分配所需的地址空间,以将所述新增节点由所述动态随机存储器的地址空间迁移至所述非易失存储器的地址空间;其中,所述全局索引以及所述快捷索引均采用跳表数据结构。2.根据权利要求1所述的方法,其特征在于,所述在接收到数据插入请求的情况下,在全局索引中定位待插入数据待插入的位置包括:根据起始节点的高度,设置当前节点高度,并以所述起始节点为初始的当前节点;获取步骤:根据所述当前节点高度,从所述当前节点开始获取下一个节点作为新的当前节点;若当前节点不为空指针且对应的键值小于所述待插入数据的搜索码,则将所述当前节点高度减去预设数值,执行所述获取步骤直至当前节点为空指针或对应的键值小于所述待插入数据的搜索码,对所述当前节点的父节点组数是否为空指针进行第一核验;若所述第一核验的核验结果为所述当前节点的父节点组数不为空指针,对所述当前节点高度是否为零进行第二核验,若所述第二核验的核验结果为所述当前节点高度为零,返回所述当前节点并结束定位;若所述第二核验的核验结果为所述当前节点高度不为零,将所述当前节点高度减去预设数值,执行所述获取步骤直至所述当前节点高度为零。3.根据权利要求2所述的方法,其特征在于,所述若所述第二检测的检测结果为所述新增节点的父节点位于所述非易失存储器中,将所述新增节点插入到快捷索引中包括:将当前节点设置为跳表头,将当前节点高度设置为随机高度;若当前节点高度超过所述非易失存储器允许的最大高度,得到所述当前节点高度超过所述非易失存储器允许的最大高度的超出部分,将所述超出部分对应的父节点数组索引的每一项设置为跳表头,将所述非易失存储器允许的最大高度设置为当前节点高度。4.根据权利要求1所述的方法,其特征在于,基于非易失存储器的地址空间为所述新增节点分配所需的地址空间,以将所述新增节点由所述动态随机存储器的地址空间迁移至所述非易失存储器的地址空间包括:若所述新增节点的父节点在所述动态随机存取存储器中具有后继节点,则将所述后继节点确定为目标节点,基于非易失存储器的地址空间为所述目标节点分配所需的地址空间,将所述目标节点由所述动态随机存储器的地址空间迁移至所述非易失存储器的地址空间。5.根据权利要求4所述的方法,其特征在于,基于非易失存储器的地址空间为所述新增
节点分配所需的地址空间,以将所述新增节点由所述动态随机存储器的地址空间迁移至所述非易失存储器的地址空间包括:递进步骤:逐一获取所述后继节点作为当前节点;若当前节点的高度小于所述新增节点在所述非易失存储器中的父节点的高度,则将当...

【专利技术属性】
技术研发人员:姚建国周威彭博许寒旭张萍苌凯旋李晗东
申请(专利权)人:上海交通大学中国移动通信集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1