数据库索引的生成方法、机器可读存储介质与计算机设备技术

技术编号:35696807 阅读:13 留言:0更新日期:2022-11-23 14:48
本发明专利技术提供了一种数据库索引的生成方法、存储介质与计算机设备。其中上述方法包括:获取数据库索引的创建语句;对创建语句进行语义分析,得到被索引关系以及统计公式;创建聚合索引;根据统计公式对被索引关系进行统计,得到统计信息;将统计信息作为聚合数据在聚合索引中进行保存。本发明专利技术的方案,利用聚合索引预先统计并保存后续常用统计查询的结果,以后后续统计查询时方便快速地提供数据。一方面借助于索引的有序性提高了统计查询的处理效率;另一方面聚合索引随着数据的变化而相应更新,保证了数据的实时性。证了数据的实时性。证了数据的实时性。

【技术实现步骤摘要】
数据库索引的生成方法、机器可读存储介质与计算机设备


[0001]本专利技术涉及数据库技术,特别是涉及一种数据库索引的生成方法、机器可读存储介质与计算机设备。

技术介绍

[0002]分析性数据库应用中通常会存在大量的统计查询语句。这些语句的处理比较耗时而且需要占用大量的硬件资源。这些语句中使用大量的聚合操作,用于生成统计信息,如分组,去重,求和,计数等。
[0003]为了提高这些统计查询的处理效率,现有数据库技术中提出了的一些解决方案,例如物化视图,列存,利用抽样的统计信息计算近似值等,但这些技术都存在一定程度的局限性。例如物化视图不能实时的反应数据的更新,需要通过刷新来反映数据变化,频繁的刷新也同样消耗大量资源。列存为了得到一个列统计,需要导入列的所有数据,效率较差。而抽样统计只能得到近似值,不够精确。

技术实现思路

[0004]本专利技术的一个目的是要在数据库中提供可以快速得到统计查询结果的技术手段。
[0005]本专利技术一个进一步的目的是可根据统计查询的需要灵活定义聚合索引。
[0006]本专利技术一个进一步的目的是提高多表连接执行计划的选择算法的效率。
[0007]特别地,本专利技术提供了一种数据库索引的生成方法,其包括:
[0008]获取数据库索引的创建语句;
[0009]对创建语句进行语义分析,得到被索引关系以及统计公式;
[0010]创建聚合索引;
[0011]根据统计公式对被索引关系进行统计,得到统计信息;
[0012]将统计信息作为聚合数据在聚合索引中进行保存。
[0013]可选地,创建聚合索引的步骤包括:
[0014]创建索引数据表,索引数据表采用BTree数据结构;
[0015]在数据库的系统表中记录统计公式以及索引数据表与被索引关系的对应关系。
[0016]可选地,在数据库的系统表中记录统计公式的步骤包括:
[0017]以创建语句的形式保存统计公式;或者
[0018]对统计公式进行编译,以得到与统计公式对应的可执行代码,并保存与统计公式对应的可执行代码。
[0019]可选地,在数据库的系统表中记录统计公式的步骤之前还包括:
[0020]判断统计公式是否定义有对应的转换规则;
[0021]若是,对按照对应的转换规则对统计进行转换;并且
[0022]在数据库的系统表中记录统计公式的步骤包括:在数据库的系统表中记录转换后的统计公式。
[0023]可选地,在创建索引数据表的步骤之后还包括:
[0024]确定统计信息的数据长度;
[0025]按照数据长度为索引数据表分配空间。
[0026]可选地,对创建语句进行语义分析的步骤还包括:
[0027]通过对创建语句进行语义分析得到索引的类型;
[0028]判断创建索引的类型是否为聚合索引;
[0029]若是,则执行创建所述聚合索引的步骤。
[0030]可选地,在将统计信息作为聚合数据在聚合索引中进行保存的步骤之后还包括:
[0031]获取被索引关系的操作,并判断操作是否触发被索引关系的修改;
[0032]若是,根据被索引关系的修改更新聚合索引。
[0033]可选地,在聚合索引中保存统计信息的步骤之后还包括:
[0034]获取被索引关系的统计查询,并判断统计查询是否针对统计信息;
[0035]若是,从聚合索引查询出聚合数据,并响应查询。
[0036]根据本专利技术的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的数据库索引的生成方法。
[0037]根据本专利技术的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的数据库索引的生成方法。
[0038]本专利技术的数据库索引的生成方法,在获取到数据库索引的创建语句,创建出聚合索引,利用聚合索引预先统计并保存后续常用统计查询的结果,便于后续统计查询时方便快速地提供数据。一方面借助于索引的有序性提高了统计查询的处理效率;另一方面聚合索引随着数据的变化而相应更新,保证了数据的实时性。聚合索引的聚合数据通过对被索引关系(可以为单表或者子查询的结果表)的全部相关数据统计得出,保证了统计数据的准确性。
[0039]进一步地,本专利技术的数据库索引的生成方法,生成的聚合索引具有BTree数据结构的索引数据表,每一索引键值(或称索引码值)匹配保存对应数据行的位置以及相应的统计值。聚合索引的统计公式保存于数据库的系统表内,统计种类灵活,可以根据需要灵活配置。此外聚合索引的索引键值可以根据需要选择是否去重,在后续数据操作时,聚合索引可以方便地进行更新。
[0040]根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。
附图说明
[0041]后文将参照附图以示例性而非限制性的方式详细描述本专利技术的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
[0042]图1是根据本专利技术一个实施例的数据库索引的生成方法实现的聚合索引的数据结构示意图;
[0043]图2是根据本专利技术一个实施例的数据库索引的生成方法实现的聚合索引的一节点
的数据示意图;
[0044]图3是根据本专利技术一个实施例的数据库索引的生成方法的示意图;
[0045]图4是根据本专利技术另一实施例的数据库索引的生成方法的流程示意图;
[0046]图5是根据本专利技术一个实施例的数据库索引的更新方法的流程示意图;
[0047]图6是根据本专利技术一个实施例的数据库索引的使用方法的流程示意图;
[0048]图7是根据本专利技术一个实施例的机器可读存储介质的示意图;以及
[0049]图8是根据本专利技术一个实施例的计算机设备的示意图。
具体实施方式
[0050]本实施例的数据库索引的生成方法的目的是为了生成一种新型的索引,该索引被命名为聚合索引。聚合索引的目的是利用索引的的形式保存数据的统计信息,避免了现有技术在处理统计查询时,使用聚合操作生成统计信息,出现的处理耗时消耗资源大的问题。
[0051]聚合索引利用数据库中BTREE索引或其他索引技术的有序性来加快信息的检索,借助于索引随更新数据相应更新的特性来保证统计信息的实时性。聚合索引还可以利用事务提交时索引数据更新才提交来保证数据的可见性,甚至可以利用索引的分区来实现加快统计信息的访问速度。
[0052]图1是根据本专利技术一个实施例的数据库索引的生成方法实现的聚合索引的数据结构示意图,图2是根据本专利技术一个实施例的数据库索引的生成方法实现的聚合索引的一节点的数据示意图。
[0053]图1中以Btree结构本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库索引的生成方法,包括:获取数据库索引的创建语句;对所述创建语句进行语义分析,得到被索引关系以及统计公式;创建聚合索引;根据所述统计公式对所述被索引关系进行统计,得到统计信息;将所述统计信息作为聚合数据在所述聚合索引中进行保存。2.根据权利要求1所述的数据库索引的生成方法,其中,所述创建所述聚合索引的步骤包括:创建索引数据表,所述索引数据表采用BTree数据结构;在所述数据库的系统表中记录所述统计公式以及所述索引数据表与所述被索引关系的对应关系。3.根据权利要求2所述的数据库索引的生成方法,其中,在所述数据库的系统表中记录所述统计公式的步骤包括:以所述创建语句的形式保存所述统计公式;或者对所述统计公式进行编译,以得到与所述统计公式对应的可执行代码,并保存所述与所述统计公式对应的可执行代码。4.根据权利要求2所述的数据库索引的生成方法,其中,在所述数据库的系统表中记录所述统计公式的步骤之前还包括:判断所述统计公式是否定义有对应的转换规则;若是,对按照所述对应的转换规则对所述统计进行转换;并且在所述数据库的系统表中记录所述统计公式的步骤包括:在所述数据库的系统表中记录转换后的所述统计公式。5.根据权利要求2所述的数据库索引的生成方法,其中,在创建索引数据表的步骤之后还包括:确定所...

【专利技术属性】
技术研发人员:冷建全范国腾
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

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

1