查询数据的处理方法、装置、存储介质及处理器制造方法及图纸

技术编号:24091071 阅读:28 留言:0更新日期:2020-05-09 08:05
本申请公开了一种查询数据的处理方法、装置、存储介质及处理器。该方法包括:将查询条件拆分成至少两条的子查询条件,其中,每条子查询条件包括至少一个查询项,且每条子查询条件都会触发查询并生成一个中间结果集;对至少两条的子查询条件进行并行查询;获取查询到的数据信息。通过本申请,解决了相关技术中在分布式数据库中查询数据并分页展示数据时速度较慢的问题。

Processing method, device, storage medium and processor of query data

【技术实现步骤摘要】
查询数据的处理方法、装置、存储介质及处理器
本申请涉及数据查询
,具体而言,涉及一种查询数据的处理方法、装置、存储介质及处理器。
技术介绍
在数据查询和分析时,常常需要对查询到的数据进行分页,并展示用户想要查看的页面的数据,为了满足这一需求,相关技术中是先根据查询条件筛选查询出满足当前查询条件的所有数据,作为中间结果集,然后基于该中间结果集在一个子查询中先查询结果集A中的数据的总行数,再查询用户所要查看的页面的明细数据。假设在一个目标数据集中查询出满足条件的所有数据耗时为5s,计算数据的总行数耗时为2s,计算用户所要查看的页面的明细数据耗时为1s,采用该查询和分页方法在单机数据库中进行数据查询和分页查询效率较高,例如MSSqlServer数据库,MySQL数据库中,耗时为8s,具体地,5s+1s+2s=8s。但是相关技术中的方法在不同的数据库中查询相同的目标数据集总耗时不同,具体地,在分布式数据库Greenplum中,采用该方法进行数据查询和分页所需的时间为13s具体地,5+1+5+2=13s,也即,虽然计算数据的总行数和计算分页明细的步骤都基于前面的查询结果,但却查询满足条件的数据的步骤却重新进行了一次,需要多花一倍时间。由于在进行数据查询和分页的过程中,主要耗时产生在查询满足条件的数据的步骤,在该步骤多花一倍时间,大大降低了数据查询和分页显示的效率。针对相关技术中在分布式数据库中查询数据并分页展示数据时速度较慢的问题,目前尚未提出有效的解决方案。
技术实现思路
本申请的主要目的在于提供一种查询数据的处理方法、装置、存储介质及处理器,以解决相关技术中在分布式数据库中查询数据并分页展示数据时速度较慢的问题。为了实现上述目的,根据本申请的一个方面,提供了一种查询数据的处理方法。该方法包括:将查询条件拆分成至少两条的子查询条件,其中,每条子查询条件包括至少一个查询项,且每条子查询条件都会触发查询并生成一个中间结果集;对至少两条的子查询条件进行并行查询;获取查询到的数据信息。进一步地,对每条子查询条件进行查询包括:在目标数据库中筛选出满足子查询条件的预设条件的数据,将满足预设条件的数据构成中间结果集;在该中间结果集中查询子查询条件的全部查询项对应的结果。进一步地,将查询条件拆分成至少两条的子查询条件包括:将查询条件拆分为第一子查询条件和第二子查询条件,其中,第一子查询条件中的查询项用于查询第一子查询条件触发生成的中间结果集合中的数据所占的总行数,第二子查询条件中的查询项用于查询目标页码对应的页面数据,其中,目标页码是基于总行数对第二子查询条件触发生成的中间结果集进行分页得到的页码。进一步地,对第一子查询条件进行查询包括:在目标数据库中筛选出满足预设条件的数据,满足预设条件的数据构成中间结果集;采用行返回函数查询该中间结果集中的数据所占的总行数。进一步地,对第二子查询条件进行查询包括:在目标数据库中筛选出满足预设条件的数据,满足预设条件的数据构成中间结果集;对该中间结果集中的数据进行排序,获取每行数据的行序列;根据分页行数和目标页码计算目标页码对应的页面数据的起始行序列,其中,分页行数是基于总行数对该中间结果集进行分页时每一页包含的行数;根据起始行序列和分页行数在该中间结果集中确定目标页码对应的页面数据。进一步地,目标数据库为分布式数据库。进一步地,分布式数据库为Greenplum数据库。为了实现上述目的,根据本申请的另一方面,提供了一种查询数据的处理装置。该装置包括:拆分单元,用于将查询条件拆分成至少两条的子查询条件,其中,每条子查询条件包括至少一个查询项,且每条子查询条件都会触发查询并生成一个中间结果集;查询单元,用于对至少两条的子查询条件进行并行查询;获取单元,用于获取查询到的数据信息。为了实现上述目的,根据本申请的另一方面,提供了一种存储介质,存储介质包括存储的程序,其中,程序执行上述任意一种查询数据的处理方法。为了实现上述目的,根据本申请的另一方面,提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一种查询数据的处理方法。通过本申请,采用以下步骤:将查询条件拆分成至少两条的子查询条件,其中,每条子查询条件包括至少一个查询项,且每条子查询条件都会触发查询并生成一个中间结果集;对至少两条的子查询条件进行并行查询;获取查询到的数据信息,解决了相关技术中在分布式数据库中查询数据并分页展示数据时速度较慢的问题。通过并发执行计算数据总行数的步骤和获取目标页码对应的页面数据,进而达到了提高数据查询及分页展示数据的速度的效果。附图说明构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本申请实施例提供的查询数据的处理方法的流程图;以及图2是根据本申请实施例提供的查询数据的处理装置的示意图。具体实施方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。根据本申请的实施例,提供了一种查询数据的处理方法。图1是根据本申请实施例的查询数据的处理方法的流程图。如图1所示,该方法包括以下步骤:步骤S101,将查询条件拆分成至少两条的子查询条件,其中,中间结果集每条子查询条件包括至少一个查询项,且每条子查询条件都会触发查询并生成一个中间结果集。需要说明的是,在相关技术中,依照查询条件筛选出数据库中满足预设规则的数据后,再对满足预设规则的数据依次执行多个查询项时,存在对筛选的步骤执行多次的情况,增加了查询时间,本实施例将查询条件进行拆分,用以提高查询效率。可选地,在本申请实施例提供的查询数据的处理方法中,将查询条件拆分成至少两条的子查询条件包括:将查询条件拆分为第一子查询条件和第二子查询条件,其中,第一子查询条件中的查询项用于查询第一子查询条件触发生成的中间结果集中的数据所占的总行数,第二子查询条件中的查询项本文档来自技高网
...

【技术保护点】
1.一种查询数据的处理方法,其特征在于,包括:/n将查询条件拆分成至少两条的子查询条件,其中,每条子查询条件包括至少一个查询项,且每条子查询条件都会触发查询并生成一个中间结果集;/n对所述至少两条的子查询条件进行并行查询;/n获取查询到的数据信息。/n

【技术特征摘要】
1.一种查询数据的处理方法,其特征在于,包括:
将查询条件拆分成至少两条的子查询条件,其中,每条子查询条件包括至少一个查询项,且每条子查询条件都会触发查询并生成一个中间结果集;
对所述至少两条的子查询条件进行并行查询;
获取查询到的数据信息。


2.根据权利要求1所述的方法,其特征在于,对每条子查询条件进行查询包括:
在目标数据库中筛选出满足所述子查询条件的预设条件的数据,将满足所述预设条件的数据构成中间结果集;
在该中间结果集中查询所述子查询条件的全部查询项对应的结果。


3.根据权利要求1所述的方法,其特征在于,将所述查询条件拆分成至少两条的子查询条件包括:
将所述查询条件拆分为第一子查询条件和第二子查询条件,其中,所述第一子查询条件中的查询项用于查询所述第一子查询条件触发生成的中间结果集合中的数据所占的总行数,所述第二子查询条件中的查询项用于查询目标页码对应的页面数据,其中,所述目标页码是基于所述总行数对所述第二子查询条件触发生成的中间结果集进行分页得到的页码。


4.根据权利要求3所述的方法,其特征在于,对所述第一子查询条件进行查询包括:
在所述目标数据库中筛选出满足所述预设条件的数据,满足所述预设条件的数据构成中间结果集;
采用行返回函数查询该中间结果集中的数据所占的总行数。


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

【专利技术属性】
技术研发人员:蒋亚飞
申请(专利权)人:北京国双科技有限公司
类型:发明
国别省市:北京;11

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

1