System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据库的索引处理方法、装置、设备及可读存储介质制造方法及图纸_技高网

数据库的索引处理方法、装置、设备及可读存储介质制造方法及图纸

技术编号:41400526 阅读:6 留言:0更新日期:2024-05-20 19:25
本申请提供了一种数据库的索引处理方法、装置、设备及可读存储介质;方法包括:当内存使用量大于第一阈值时,基于位于内存的第一索引树中的每个节点的访问密度,确定第一索引树中的释放节点;从第一索引树中,确定以释放节点作为根节点的第一子树;将第一子树的至少部分合并为位于磁盘的第二索引树的节点,并从第一索引树中删除第一子树中除释放节点外的其他节点;当内存使用量小于第二阈值时,将位于磁盘的第二索引树的至少一个节点迁移至内存。通过本申请,能够提高内存空间的利用率以及索引访问的效率。

【技术实现步骤摘要】

本申请涉及计算机技术,尤其涉及一种数据库的索引处理方法、装置、设备及可读存储介质


技术介绍

1、在数据库系统中,索引是实现快速和高吞吐量数据访问的最关键组件之一。对于在线事务处理来说,索引的性能尤为重要,然而,索引对内存的需求可能过高,有限的内存还要与各种其他类型的数据竞争。

2、对于内存数据库,在内存无法容纳时,部分索引必须溢出到磁盘,这可能在高负载期间暂时发生,对于传统数据库来说,为了缓存索引,不断地将索引在内存和磁盘之间迁移,浪费了内存空间以及降低了索引访问的效率。


技术实现思路

1、本申请实施例提供一种数据库的索引处理方法、装置、设备及可读存储介质,能够使得索引在内存和磁盘中进行高效交互,提高内存空间的利用率以及索引访问的效率。

2、本申请实施例的技术方案是这样实现的:

3、本申请实施例提供一种数据库的索引处理方法,所述方法包括:

4、当内存使用量大于第一阈值时,基于位于内存的第一索引树中的每个节点的访问密度,确定所述第一索引树中的释放节点;

5、从所述第一索引树中,确定以所述释放节点作为根节点的第一子树;

6、将所述第一子树的至少部分合并为位于磁盘的第二索引树的节点,并从所述第一索引树中删除所述第一子树中除所述释放节点外的其他节点;

7、当内存使用量小于第二阈值时,将位于所述磁盘的第二索引树的至少一个节点迁移至所述内存,其中,所述第二阈值小于所述第一阈值。

8、本申请实施例提供一种数据库的索引处理装置,包括:

9、释放子树模块,用于当内存使用量大于第一阈值时,基于位于内存的第一索引树中的每个节点的访问密度,确定所述第一索引树中的释放节点;从所述第一索引树中,确定以所述释放节点作为根节点的第一子树;将所述第一子树的至少部分合并为位于磁盘的第二索引树的节点,并从所述第一索引树中删除所述第一子树中除所述释放节点外的其他节点;

10、磁盘数据迁移模块,当内存使用量小于第二阈值时,将位于所述磁盘的第二索引树的至少一个节点迁移至所述内存,其中,所述第二阈值小于所述第一阈值。

11、本申请实施例提供一种电子设备,包括:

12、存储器,用于存储计算机可执行指令;

13、处理器,用于执行所述存储器中存储的计算机可执行指令时,实现本申请实施例提供的数据库的索引处理方法。

14、本申请实施例提供一种计算机可读存储介质,存储有计算机程序或计算机可执行指令,用于被处理器执行时实现本申请实施例提供的数据库的索引处理方法。

15、本申请实施例提供一种计算机程序产品,包括计算机程序或计算机可执行指令,所述计算机程序或计算机可执行指令被处理器执行时,实现本申请实施例提供的数据库的索引处理方法。

16、本申请实施例具有以下有益效果:

17、当内存使用量大于第一阈值时,基于位于内存的第一索引树中的每个节点的访问密度,确定第一索引树中的释放节点,从第一索引树中,确定以释放节点作为根节点的第一子树,将第一子树的至少部分合并为位于磁盘的第二索引树的节点,并从第一索引树中删除第一子树中除释放节点外的其他节点,如此,实现索引数据从内存迁移到磁盘的过程,并在迁移到磁盘后,对第一索引树中的子树进行释放,减少了空间浪费,提高了内存空间的使用效率,此外,当内存使用量小于第二阈值时,将位于磁盘的第二索引树的至少一个节点迁移至内存,如此,将磁盘中存储的数据迁移到内存中,提高了内存中索引的数量,进一步提高了索引访问时的命中概率,提高索引访问的效率。

本文档来自技高网...

【技术保护点】

1.一种数据库的索引处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述基于位于内存的第一索引树中的每个节点的访问密度,确定所述第一索引树中的释放节点,包括:

3.根据权利要求2所述的方法,其特征在于,所述确定位于所述内存的所述第一索引树中的每个节点的访问密度,包括:

4.根据权利要求2所述的方法,其特征在于,所述基于所述第一索引树中的每个节点的访问密度,确定所述第一索引树中的多个候选释放节点,包括:

5.根据权利要求1所述的方法,其特征在于,在所述基于位于内存的第一索引树中的每个节点的访问密度,确定所述第一索引树中的释放节点之前,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,

7.根据权利要求1所述的方法,其特征在于,当位于磁盘的第二索引树的初始节点包含所述释放节点时,所述将所述第一子树的至少部分合并为位于磁盘的第二索引树的节点,包括:

8.根据权利要求1所述的方法,其特征在于,当位于磁盘的第二索引树不包含所述释放节点时,所述将所述第一子树的至少部分合并为位于磁盘的第二索引树的节点,包括:

9.根据权利要求1所述的方法,其特征在于,在所述将位于所述磁盘的第二索引树的至少一个节点迁移至所述内存之前,所述方法还包括:

10.根据权利要求1所述的方法,其特征在于,在所述将位于所述磁盘的第二索引树的至少一个节点迁移至所述内存之前,所述方法还包括:

11.根据权利要求10所述的方法,其特征在于,

12.一种数据库的索引处理装置,其特征在于,所述装置包括:

13.一种电子设备,其特征在于,所述电子设备包括:

14.一种计算机可读存储介质,存储有计算机可执行指令或者计算机程序,其特征在于,所述计算机可执行指令或者计算机程序被处理器执行时实现权利要求1至11任一项所述数据库的索引处理方法。

15.一种计算机程序产品,包括计算机可执行指令或计算机程序,其特征在于,所述计算机可执行指令或计算机程序被处理器执行时实现权利要求1至11任一项所述数据库的索引处理方法。

...

【技术特征摘要】

1.一种数据库的索引处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述基于位于内存的第一索引树中的每个节点的访问密度,确定所述第一索引树中的释放节点,包括:

3.根据权利要求2所述的方法,其特征在于,所述确定位于所述内存的所述第一索引树中的每个节点的访问密度,包括:

4.根据权利要求2所述的方法,其特征在于,所述基于所述第一索引树中的每个节点的访问密度,确定所述第一索引树中的多个候选释放节点,包括:

5.根据权利要求1所述的方法,其特征在于,在所述基于位于内存的第一索引树中的每个节点的访问密度,确定所述第一索引树中的释放节点之前,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,

7.根据权利要求1所述的方法,其特征在于,当位于磁盘的第二索引树的初始节点包含所述释放节点时,所述将所述第一子树的至少部分合并为位于磁盘的第二索引树的节点,包括:

8.根据权利要求1所述的方法,其特征在于,当位于磁盘的第二索引树...

【专利技术属性】
技术研发人员:潘安群雷海林朱翀陈育兴
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1