【技术实现步骤摘要】
一种查询优化方法及装置
本说明书涉及互联网
,尤其涉及一种查询优化方法及装置。
技术介绍
在线查询场景中,经常会遇到高并发、高吞吐、低延迟的查询需求。例如,在线OLTP(On-LineTransactionProcessing,联机事务处理过程)查询场景中,每秒钟可能有几万次的批量查询请求,其中每次批量查询请求中可能包含几十甚至几百个查询任务,且要求查询耗时响应在10ms之内。在这种大量查询任务的场景中,需要对查询任务进行优化以提高查询效率。相关查询优化的技术中,只能在单个查询任务范围内对该查询任务的查询逻辑进行优化。但是,不同的查询任务中仍然存在大量重复的查询逻辑。所以,单个查询任务范围内的查询优化,查询效率仍然较低。
技术实现思路
本说明书至少一个实施例提供了一种查询优化方法,以提升对查询任务的查询效率。第一方面,提供了一种查询优化方法,所述方法包括:获取待优化的多个查询任务;其中,每个所述查询任务中包括至少一个子任务,并且当同一查询任务中包括至少两个子任务时,所述至少两个子任务之间存在查询依赖关系;根据所述查询依赖关系,将所述多个查询任务组合得到一个组合任务;基于所述组合任务,对不同查询任务中的至少两个子任务进行合并,得到第一合并子任务;其中,执行所述第一合并子任务可得到所述不同查询任务中的至少两个子任务的查询结果。第二方面,提供了一种查询优化装置,所述装置包括:获取模块,用于获取待优化的多个查询任务;其中,每个所述查询任务中包括 ...
【技术保护点】
1.一种查询优化方法,所述方法包括:/n获取待优化的多个查询任务;其中,每个所述查询任务中包括至少一个子任务,并且当同一查询任务中包括至少两个子任务时,所述至少两个子任务之间存在查询依赖关系;/n根据所述查询依赖关系,将所述多个查询任务组合得到一个组合任务;/n基于所述组合任务,对不同查询任务中的至少两个子任务进行合并,得到第一合并子任务;其中,执行所述第一合并子任务可得到所述不同查询任务中的至少两个子任务的查询结果。/n
【技术特征摘要】
1.一种查询优化方法,所述方法包括:
获取待优化的多个查询任务;其中,每个所述查询任务中包括至少一个子任务,并且当同一查询任务中包括至少两个子任务时,所述至少两个子任务之间存在查询依赖关系;
根据所述查询依赖关系,将所述多个查询任务组合得到一个组合任务;
基于所述组合任务,对不同查询任务中的至少两个子任务进行合并,得到第一合并子任务;其中,执行所述第一合并子任务可得到所述不同查询任务中的至少两个子任务的查询结果。
2.根据权利要求1所述的方法,所述对不同查询任务中的至少两个子任务进行合并,得到第一合并子任务,包括:
基于所述查询依赖关系,确定每个所述查询任务中无依赖的子任务,组成所述组合任务的第一任务集合;
将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务。
3.根据权利要求2所述的方法,每个所述子任务包括:查询条件和查询数据源;
所述将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务,包括:
在所述第一任务集合中,将查询条件和查询数据源相同的至少两个子任务进行合并,得到所述第一合并子任务。
4.根据权利要求2所述的方法,每个所述子任务包括查询数据源;
所述将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务,包括:
从所述第一任务集合中,确定所述查询数据源相同的多个子任务;
在所述查询数据源相同的多个子任务中,将查询路径存在相同部分的至少两个子任务进行合并,得到所述第一合并子任务。
5.根据权利要求2所述的方法,在所述组成所述组合任务的第一任务集合之后,还包括:
基于所述查询依赖关系,在所述组合任务中,确定依赖所述第一任务集合中每个子任务的子任务,组成所述组合任务的第二任务集合;
执行所述第一任务集合中的子任务,并存储查询结果;
若所述第二任务集合和第一任务集合中,存在查询条件和查询数据源相同的相同子任务,则将所述第一任务集合中的相同子任务的查询结果作为所述第二任务集合中的相同子任务的查询结果。
6.根据权利要求1或2所述的方法,每个所述子任务包括查询数据源,且所述查询数据源包括至少两种不同物理架构的数据源。
7.根据权利要求2所述的方法,在所述组成所述组合任务的第一任务集合之后,还包括:
并发执行所述第一任务集合中的子任务;
将查询时长满足预设条件的子任务的查询结果放置在缓存中。
8.根据权利要求1所述的方法,在所述将所述多个查询任务组合得到一个组合任务之前,还包括:
根据预设的判定条件,从所述查询任务中确定第一查询逻辑;所述第一查询逻辑包括:同一所述查询任务中的至少一个子任务;
存储所述第一查询逻辑的查询结果;
在所述将所述多个查询任务组合得到一个组合任务之后,还包括:
判断所述组合任务中存在与所述第一查询逻辑相同的查询逻辑,则将所述第一查询逻辑的查询结果作为所述与所述第一查询逻辑相同的查询逻辑的查询结果。
9.一种查询优化装置,所述装置包括:
获取模块,用于获取待优化的多个查询任务;其中,每个所述查询任务中包括至少一个子任务,并且当同一查询任务中包括至少两个子任务时,所述至少两个子...
【专利技术属性】
技术研发人员:牛建,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。