数据查询方法、装置及相关设备与流程

文档序号:37229956发布日期:2024-03-05 15:39阅读:17来源:国知局
数据查询方法、装置及相关设备与流程

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


背景技术:

1、在数据库领域,优化数据查询性能,通常是各个数据库厂商重点关注的问题之一。目前,优化数据查询性能的其中一种方式在于,优化相关子查询的查询性能。其中,子查询,是指一个查询内部所嵌套的查询;与之对应的父查询,也可成为外层查询,是指被嵌套查询的外查询。举例来说,假设在查询a中嵌套查询b,则查询a为子查询,查询b为父查询。进一步地,子查询可以分为相关子查询以及非相关子查询。相关子查询,是指子查询的查询结果依赖于父查询中的某个值,非相关子查询是指子查询不依赖父查询的任何值,可以独立执行。

2、在优化相关子查询的性能时,通常是将相关子查询转换为半连接(semi-join)或者反连接(antijoin)后再与父查询连接,或者将相关子查询转换为非相关子查询等。但是,这种转换相关子查询的过程通常较为复杂,容易降低数据查询的可靠性,如最终查询到的结果可能不完整或者存在错误等,从而影响用户的查询体验。


技术实现思路

1、有鉴于此,本申请实施例提供了一种数据查询方法,用于在实现优化相关子查询的性能的同时,保证数据查询的可靠性,以此提高用户的数据查询体验。本申请还提供了对应的装置、计算设备集群、计算机可读存储介质以及计算机程序产品。

2、第一方面,本申请实施例提供了一种数据查询方法,具体地,获取查询语句,例如可以是用户输入的sql语句等,当该查询语句包括相关子查询,确定用于驱动该相关子查询执行的第一值,并根据该第一值执行相关子查询,得到目标查询结果,再确定用于驱动相关子查询执行的第二值,并且,当第二值与第一值匹配,确定第二值对应的查询结果为目标查询结果,而可以不用再次执行相关子查询。

3、由于在执行相关子查询的过程中,对于与第一值匹配的第二值,可以直接将根据第一值执行相关子查询所得到的目标查询结果作为第二值对应的查询结果,而无需通过重新执行相关子查询的方式来获取查询结果,从而可以通过减少相关子查询的执行次数来实现优化相关子查询的性能,并且,数据查询的可靠性也能得到保证(可以不用对相关子查询进行转换)。

4、在一种可能的实施方式中,在根据第一值执行相关子查询并得到目标查询结果后,可以将该目标查询结果缓存至目标存储区域,如缓存至内存等,从而当第二值与第一值匹配时,确定将目标存储区域中缓存的目标查询结果确定为第二值对应的查询结果。如此,对于父查询中与第一值相匹配的一个或者多个值,可以直接将缓存的查询结果作为该一个或者多个值分别对应的查询结果,从而无需再执行相关子查询,从而可以有效提高数据查询的效率、减少资源消耗。

5、在一种可能的实施方式中,在将目标查询结果缓存至目标存储区域时,具体可以是将第一值以及目标查询结果基于kv(key-value)格式缓存至目标存储区域,其中,第一值作为键(key),目标查询结果作为值(value)。如此,通过kv格式可以在目标存储区域中建立查询索引,以便于从目标存储区域中基于该索引快速查看到与key相匹配的查询结果。

6、在一种可能的实施方式中,目标存储区域包括如下存储区域中的至少一种:缓存区域、内存区域、磁盘区域。

7、在一种可能的实施方式中,当满足淘汰条件时,还可以从目标存储区域中淘汰第一值所对应的目标查询结果。如此,可以释放目标存储区域的存储资源,以减少存储资源的消耗和浪费。

8、示例性地,该淘汰条件,例如可以是目标存储区域当前剩余的存储空间低于预设阈值,,或者可以是针对该查询语句的数据查询过程执行完成,又或者是基于lru算法确定目标查询结果的访问次数最少。实际应用时,淘汰条件,也可以是其它可能的实现方式。

9、在一种可能的实施方式中,在将目标查询结果缓存至目标存储区域时,具体可以是确定用于驱动相关子查询执行的多个值是否满足优化条件,该多个值包括前述的第一值和第二值,并且,当该多个值满足优化条件时,将目标查询结果缓存至目标存储区域。如此,可以利用该优化条件,在合适的场景下通过缓存目标查询结果来提高执行数据查询的效率。

10、在一种可能的实施方式中,在确定用于驱动所述相关子查询执行的多个值是否满足优化条件时,具体可以是预估用于驱动该相关子查询执行的多个值的重复率,并确定该多个值的重复率是否达到阈值,如果达到,则确定满足优化条件,如果未达到,则确定不满足优化条件。如此,可以在存在较多重复的值的情况下,通过缓存部分值的查询结果并将其作为另一部分值的查询结果的方式,可以有效提高数据查询效率。

11、在一种可能的实施方式中,还可以调整目标存储区域的存储空间大小,以此实现对目标存储区域的弹性控制。比如,当存储资源较为紧张时,可以减少目标存储区域的存储空间大小,以减少存储资源消耗;而当存储资源较为充足时,可以增大目标存储区域的存储空间大小,以支持存储更多值对应的相关子查询。

12、第二方面,本申请提供一种数据查询装置,所述数据查询装置包括用于实现第一方面或第一方面任一种可能实现方式中的数据查询方法的各个模块。

13、第三方面,本申请提供一种计算设备集群,所述计算设备包括至少一个计算设备,所述至少一个计算设备包括至少一个处理器和至少一个存储器;所述至少一个存储器用于存储指令,所述至少一个处理器执行所述至少一个存储器存储的该指令,以使所述计算设备集群执行上述第二方面或第二方面任一种可能实现方式中的数据查询方法。需要说明的是,该存储器可以集成于处理器中,也可以是独立于处理器之外。所述至少一个计算设备还可以包括总线。其中,处理器通过总线连接存储器。其中,存储器可以包括可读存储器以及随机存取存储器。

14、第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在至少一个计算设备上运行时,使得所述至少一个计算设备执行上述第一方面或第一方面的任一种实现方式所述的方法。

15、第五方面,本申请提供了一种包含指令的计算机程序产品,当其在至少一个计算设备上运行时,使得所述至少一个计算设备执行上述第一方面或第一方面的任一种实现方式所述的方法。

16、本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。



技术特征:

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

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述将所述目标查询结果缓存至目标存储区域,包括:

4.根据权利要求2或3所述的方法,其特征在于,所述目标存储区域包括如下存储区域中的至少一种:

5.根据权利要求2至4任一项所述的方法,其特征在于,所述方法还包括:

6.根据权利要求2至5任一项所述的方法,其特征在于,所述将所述目标查询结果缓存至目标存储区域,包括:

7.根据权利要求6所述的方法,其特征在于,所述确定用于驱动所述相关子查询执行的多个值是否满足优化条件,包括:

8.根据权利要求2至7任一项所述的方法,其特征在于,所述方法还包括:

9.一种数据查询装置,其特征在于,所述数据查询装置包括:

10.根据权利要求9所述的装置,其特征在于,所述装置还包括:

11.根据权利要求10所述的装置,其特征在于,所述缓存模块,具体用于:

12.根据权利要求10或11所述的装置,其特征在于,所述目标存储区域包括如下存储区域中的至少一种:

13.根据权利要求10至12任一项所述的装置,其特征在于,所述装置还包括:

14.根据权利要求10至13任一项所述的装置,其特征在于,所述缓存模块,具体用于:

15.根据权利要求14所述的装置,其特征在于,所述执行模块,具体用于:

16.根据权利要求10至15任一项所述的装置,其特征在于,所述装置还包括:

17.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;

18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在至少一个计算设备上运行时,使得所述至少一个计算设备执行如权利要求1至8任一项所述的方法。

19.一种包含指令的计算机程序产品,其特征在于,当其在至少一个计算设备上运行时,使得所述至少一个计算设备执行如权利要求1至8中任一项所述的方法。


技术总结
本申请提供了一种数据查询方法,包括:获取查询语句,当该查询语句包括相关子查询,确定用于驱动该相关子查询执行的第一值,根据该第一值执行相关子查询,得到目标查询结果,并确定用于驱动相关子查询执行的第二值,当第二值与第一值匹配,确定第二值对应的查询结果为目标查询结果。对于与第一值匹配的第二值,可以直接将根据第一值执行相关子查询所得到的目标查询结果作为第二值对应的查询结果,而无需通过重新执行相关子查询的方式来获取查询结果,从而可以通过减少相关子查询的执行次数来实现优化相关子查询的性能,并且,数据查询的可靠性也能得到保证。此外,本申请还提供了对应的装置、设备及存储介质。

技术研发人员:王雄
受保护的技术使用者:华为云计算技术有限公司
技术研发日:
技术公布日:2024/3/4
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1