System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种数据查询方法、装置及相关设备制造方法及图纸_技高网

一种数据查询方法、装置及相关设备制造方法及图纸

技术编号:41196004 阅读:2 留言:0更新日期:2024-05-07 22:24
本申请提供一种数据查询方法、装置及相关设备,该方法应用于数据库,包括:计算设备获取用户输入的查询语句,根据查询语句和目标索引确定第一查询范围;在第一查询范围不是左闭右开区域的情况下,对第一查询范围包括的第一端点值和第二端点值分别进行编码,得到第一编码和第二编码;然后在第一编码和/或第二编码后添加一个或多个单字节值对应的编码,得到第一查询范围对应的目标编码;最后根据目标编码从数据库中获取查询语句查找的数据。通过上述方法,能够将查询语句中的非左闭右开区间转换为等价的左闭右开区间,且在转换时不需要考虑不同数据类型具有的不同的最小粒度等问题,能够简单高效的实现上述转换,提高查询效率。

【技术实现步骤摘要】

本申请涉及数据库领域,尤其涉及一种数据查询方法、装置及相关设备


技术介绍

1、在数据库中,用户通过查询语句查询数据库中的数据时,有些数据库的存储引擎需要将查询语句中包括的查询范围转换为存储引擎能够识别的区间范围。例如基于日志结构合并树(log structured merge tree,lsm-tree)的存储引擎是数据库中常用的一种存储引擎,在基于lsm-tree的存储引擎提供的存储服务中,如果一个查询语句是“where age>18”,存储引擎需要将该查询语句转换为存储引擎能够识别的左闭右开区间:[19,+inf)。但是,数据库中存储有不同数据类型的数据,不同的数据类型具有不同的最小粒度等。因此针对不同的数据类型,存储引擎将查询语句中的查询范围转换为存储引擎能够识别的区间范围(例如上述左闭右开区间)时,针对不同的数据类型需要有不同的转化方法,当前根据不同的数据类型将查询范围转换为存储引擎能够识别的区间范围的方法较为复杂,影响数据查询的效率。


技术实现思路

1、本申请提供一种数据查询方法、装置及相关设备,能够不用考虑不同数据类型的最小粒度,方便快捷的将查询语句中的查询范围转换为等价的左闭右开区间以供存储引擎进行数据查询,能够提高数据查询的效率。

2、第一方面,本申请提供一种数据查询方法,应用于数据库,该方法包括:计算设备获取用户输入的查询语句;根据所述查询语句和目标索引确定第一查询范围;在所述第一查询范围不是左闭右开区域的情况下,对所述第一查询范围包括的第一端点值进行编码得到第一编码,对所述第一查询范围包括的第二端点值进行编码得到第二编码;所述第一端点值小于所述第二端点值;在所述第一编码和/或所述第二编码后添加一个或多个单字节值对应的编码,得到所述第一查询范围对应的目标编码;根据所述目标编码从数据库中获取所述查询语句查找的数据。其中,所述目标索引是所述数据库包括的一个或多个索引中的一个。

3、本申请中,在确定一个查询语句对应的查询范围包括的两个值后,将这两个值在编码后,附加(append)一个或多个单字节值对应的编码,能够将查询语句中查询范围对应的非左闭右开区间转换为等价的左闭右开的区间,且在转换的过程中不需要考虑不同数据类型具有的不同的最小粒度,能够避免将非左闭右开区间转换为左闭右开区间过程中不同数据类型具有不同的最小粒度所带来的复杂性的问题,能够简单高效的将用户输入的查询语句中的查询范围转换为存储引擎能够识别的左闭右开区间,提高查询效率。

4、在一种可能的实现方式中,根据所述查询语句和目标索引确定第一查询范围,包括:根据所述目标索引确定目标字段的值域,其中,所述目标字段是目标查询条件和所述目标索引中包括的字段,所述目标查询条件是所述查询语句包括的一个或多个查询条件中的一个;获取所述目标查询条件对应的第二查询范围;所述第二查询范围是所述查询语句中所述目标字段对应的查询范围;根据所述数据类型确定所述目标字段的值域;根据所述第二查询范围和所述目标字段的值域确定所述第一查询范围。

5、本申请中,目标索引是数据库包括的一个或多个索引中的一个,每个索引包括的索引字段都是数据表中的字段,根据目标索引包括目标字段,因此根据目标索引能够获取目标字段的数据类型,进而确定目标字段的值域。由于查询语句是用户输入的,用户在输入查询语句时,并不会考虑各个字段的值域,因此根据目标查询条件确定的第二查询范围可能超过目标字段的值域范围,通过上述方法确定目标字段的值域范围,如果根据目标查询条件确定的第二查询范围超过目标字段的值域范围,将第二查询范围转换为目标字段的值域范围,能够缩小查询范围,提高查询效率。

6、在一种可能的实现方式中,所述根据第二查询范围和所述目标字段的值域确定所述第一查询范围,包括:在所述第二查询范围的最大值大于所述值域的最大值,和/或所述第二查询范围的最小值小于所述值域的最小值的情况下,根据所述值域将所述第二查询范围修改为所述第一查询范围,其中,所述第一查询范围是所述值域的子集;或者,在所述第二查询范围是所述值域的子集的情况下,将所述第二查询范围作为所述第一查询范围。

7、在一种可能的实现方式中,所述目标索引中索引字段的值在编码后的数值序与所述索引字段的值的字典序一致。

8、本申请中,数据在数据库中是以字典序排列的,通过对索引字段的值进行编码,使索引字段的值在编码后的数值序与索引字段的值的字典序一致,使得存储引擎在根据目标索引的索引字段查找数据时,能够提高查询效率。

9、在一种可能的实现方式中,所述在所述第一编码和/或所述第二编码后添加一个或多个单字节值对应的编码,包括:在所述第一查询范围的左区间不是闭区间的情况下,在所述第一编码后添加一个或多个单字节最大值对应的编码;和/或在所述第一查询范围的右区间不是开区间的情况下,在所述第二编码后添加一个或多个单字节最大值对应的编码。

10、在一种可能的实现方式中,所述根据所述查询语句和目标索引确定第一查询范围之前,还包括:

11、根据所述查询语句中的一个或多个查询条件、数据库包括的一个或多个索引以及最左前缀匹配原则确定所述目标索引;其中,所述目标索引是所述数据库包括的一个或多个索引中的一个。

12、第二方面,本申请提供一种数据查询装置,应用于数据库,包括:

13、通信模块,用于获取用户输入的查询语句;

14、处理模块,用于根据所述查询语句和目标索引确定第一查询范围;其中,所述目标索引是所述数据库包括的一个或多个索引中的一个;

15、所述处理模块,还用于在所述第一查询范围不是左闭右开区域的情况下,对所述第一查询范围包括的第一端点值进行编码得到第一编码,对所述第一查询范围包括的第二端点值进行编码得到第二编码;所述第一端点值小于所述第二端点值;

16、所述处理模块,在所述第一编码和/或所述第二编码后添加一个或多个单字节值对应的编码,得到所述第一查询范围对应的目标编码;

17、所述处理模块,根据所述目标编码从数据库中获取所述查询语句查找的数据。

18、在一种可能的实现方式中,所述处理模块具体用于:

19、根据所述目标索引确定目标字段的值域,其中,所述目标字段是目标查询条件和所述目标索引中包括的字段,所述目标查询条件是所述查询语句包括的一个或多个查询条件中的一个;

20、获取所述目标查询条件对应的第二查询范围;所述第二查询范围是所述查询语句中所述目标字段对应的查询范围;

21、根据所述数据类型确定所述目标字段的值域;

22、根据所述第二查询范围和所述目标字段的值域确定所述第一查询范围。

23、在一种可能的实现方式中,所述处理模块具体用于:

24、在所述第二查询范围的最大值大于所述值域的最大值,和/或所述第二查询范围的最小值小于所述值域的最小值的情况下,根据所述值域将所述第二查询范围修改为所述第一查询范围,其中本文档来自技高网...

【技术保护点】

1.一种数据查询方法,其特征在于,应用于数据库,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述查询语句和目标索引确定第一查询范围,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据第二查询范围和所述目标字段的值域确定所述第一查询范围,包括:

4.根据权利要求1-3任一项所述的方法,其特征在于,所述目标索引中索引字段的值在编码后的数值序与所述索引字段的值的字典序一致。

5.根据权利要求1-4任一项所述的方法,其特征在于,所述在所述第一编码和/或所述第二编码后添加一个或多个单字节值对应的编码,包括:

6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述查询语句和目标索引确定第一查询范围之前,还包括:

7.一种数据查询装置,其特征在于,应用于数据库,包括:

8.根据权利要求7所述的装置,其特征在于,所述处理模块具体用于:

9.根据权利要求8所述的装置,其特征在于,所述处理模块具体用于:

10.根据权利要求7-9任一项所述的装置,其特征在于,所述目标索引中索引字段的值在编码后的数值序与所述索引字段的值的字典序一致。

11.根据权利要求7-10任一项所述的装置,其特征在于,所述处理模块具体用于:

12.根据权利要求7-11任一项所述的装置,其特征在于,所述处理模块还用于:

13.一种计算设备,其特征在于,包括处理器和存储器,所述存储器用于存储指令,所述处理器用于执行所述指令,当所述处理器执行所述指令时,实现如权利要求1至6中任意一项所述的方法。

14.一种计算机存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备执行时,所述计算设备实现如权利要求1至6中任一项所述的方法。

...

【技术特征摘要】

1.一种数据查询方法,其特征在于,应用于数据库,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述查询语句和目标索引确定第一查询范围,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据第二查询范围和所述目标字段的值域确定所述第一查询范围,包括:

4.根据权利要求1-3任一项所述的方法,其特征在于,所述目标索引中索引字段的值在编码后的数值序与所述索引字段的值的字典序一致。

5.根据权利要求1-4任一项所述的方法,其特征在于,所述在所述第一编码和/或所述第二编码后添加一个或多个单字节值对应的编码,包括:

6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述查询语句和目标索引确定第一查询范围之前,还包括:

7.一种数据查询装置,其特征在于,应用于数据库,包括:

8.根据权利要...

【专利技术属性】
技术研发人员:姚舜禹
申请(专利权)人:行吟信息科技上海有限公司
类型:发明
国别省市:

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

1