一种处理查询的方法及装置与流程

文档序号:12465316阅读:170来源:国知局
一种处理查询的方法及装置与流程

本发明涉及数据库技术领域,特别涉及一种处理查询的方法及装置。



背景技术:

在一些数据库中,其数据量的规模非常巨大。每次处理查询业务时,都在整个数据库中进行处理,在海量的数据量中查询到符合查询业务的数据,将耗费巨大的系统资源,而且也需要用户等待较长的时间,从而降低查询者的用户体验。如何妥善的处理上述问题,就成为了业界亟待解决的课题。



技术实现要素:

本发明提供一种处理查询的方法及装置,用以降低系统处理查询业务时的系统资源消耗量和提高了反馈查询结果的速度。

根据本发明实施例的第一方面,提供一种处理查询的方法,包括:

获取用户输入的查询信息;

分析所述查询信息的查询范围;

在预设的数据库中,根据所述查询范围生成临时缓存表;

根据所述临时缓存表,处理所述查询信息。

在一个实施例中,所述获取用户输入的查询信息,包括:

获取至少一个用户输入的至少一条查询信息。

在一个实施例中,所述分析所述查询信息的查询范围,包括:

分析所述查询信息所包含的属性项,所述属性项的数量至少为两个;

分析所述查询信息所包含的对象ID的取值范围。

在一个实施例中,所述在预设的数据库中,根据所述查询范围生成临时缓存表,包括:

在预设的数据库中,根据所述查询范围生成所述临时缓存表;

计算出所述临时缓存表所需占用的数据空间大小;

在内存中调用所述数据空间大小的内存空间来存储所述临时缓存表。

在一个实施例中,所述根据所述临时缓存表,处理所述查询信息,包括:

在所述临时缓存表所占据的内存空间内处理所述查询信息;

判断所述内存空间内的数据是否发生改变;

当所述内存空间内的数据发生改变时,将所述临时缓存表的数据同步更新到所述数据库。

根据本发明实施例的第二方面,提供一种处理查询的装置,包括:

获取模块,用于获取用户输入的查询信息;

分析模块,用于分析所述查询信息的查询范围;

生成模块,用于在预设的数据库中,根据所述查询范围生成临时缓存表;

处理模块,用于根据所述临时缓存表,处理所述查询信息。

在一个实施例中,所述获取模块,包括:

获取子模块,用于获取至少一个用户输入的至少一条查询信息。

在一个实施例中,所述分析模块,包括:

第一分析子模块,用于分析所述查询信息所包含的属性项,所述属性项的数量至少为两个;

第二分析子模块,用于分析所述查询信息所包含的对象ID的取值范围。

在一个实施例中,所述生成模块,包括:

生成子模块,用于在预设的数据库中,根据所述查询范围生成所述临时缓存表;

计算子模块,用于计算出所述临时缓存表所需占用的数据空间大小;

存储子模块,用于在内存中调用所述数据空间大小的内存空间来存储所述临时缓存表。

在一个实施例中,所述处理模块,包括:

处理子模块,用于在所述临时缓存表所占据的内存空间内处理所述查询信息;

判断子模块,用于判断所述内存空间内的数据是否发生改变;

同步子模块,用于当所述内存空间内的数据发生改变时,将所述临时缓存表的数据同步更新到所述数据库。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明一示例性实施例示出的一种处理查询的方法的流程图;

图2为本发明一示例性实施例示出的一种处理查询的方法的步骤S11的流程图;

图3为本发明一示例性实施例示出的一种处理查询的方法的步骤S12的流程图;

图4为本发明一示例性实施例示出的一种处理查询的方法的步骤S13的流程图;

图5为本发明一示例性实施例示出的一种处理查询的方法的步骤S14的流程图;

图6为本发明一示例性实施例示出的一种处理查询的装置的框图;

图7为本发明一示例性实施例示出的一种处理查询的装置的获取模块61的框图;

图8为本发明一示例性实施例示出的一种处理查询的装置的分析模块62的框图;

图9为本发明一示例性实施例示出的一种处理查询的装置的生成模块63的框图;

图10为本发明一示例性实施例示出的一种处理查询的装置的处理模块64的框图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1是根据一示例性实施例示出的一种处理查询的方法流程图,如图1所示,该处理查询的方法,包括以下步骤S11-S14:

在步骤S11中,获取用户输入的查询信息;

在步骤S12中,分析所述查询信息的查询范围;

在步骤S13中,在预设的数据库中,根据所述查询范围生成临时缓存表;

在步骤S14中,根据所述临时缓存表,处理所述查询信息。

在一个实施例中,在一些数据库中,其数据量的规模非常巨大。每当处理查询业务时,都在整个数据库中进行处理,在海量的数据量中查询到符合查询业务的数据,将耗费巨大的系统资源,而且也需要用户等待较长的时间,从而降低查询者的用户体验。本实施例中的技术方案可妥善的处理上述问题。

详细步骤如下,获取用户输入的查询信息,进一步的,获取至少一个用户输入的至少一条查询信息。

分析该查询信息的查询范围。进一步的,分析该查询信息所包含的属性项,该属性项的数量至少为两个。分析该查询信息所包含的对象ID的取值范围。

在预设的数据库中,根据该查询范围生成临时缓存表。进一步的,在预设的数据库中,根据该查询范围生成该临时缓存表。计算出该临时缓存表所需占用的数据空间大小。在内存中调用该数据空间大小的内存空间来存储该临时缓存表。

根据该临时缓存表,处理该查询信息。进一步的,在该临时缓存表所占据的内存空间内处理该查询信息。判断该内存空间内的数据是否发生改。当该内存空间内的该发生改变时,将该临时缓存表的数据同步更新到该数据库。

例如,某业务A和某业务B都可执行奖励的业务,且业务A和业务B每一天都执行发送奖励的业务。数据库系统C会对业务A和业务B所产生的业务进行存储。随着业务量的积累,该数据库系统C中的数据量已经非常庞大了。通过分析用户甲提交的多条查询信息,可得到该查询信息的查询内容只是查询了业务A,时间段为2015.12.20到2015.12.31,奖励的类型为α的奖励。通过上述的查询范围的限定,以数据库系统C为基础,生成临时缓存表D,并将该临时缓存表D的所有数据放到内存中。根据该临时缓存表D,来处理用户甲提交的每一条查询信息。

本实施例中技术方案可降低数据库系统进行查询操作所占据资源占用率和提高了反馈查询结果的速度。

在一个实施例中,如图2所示,步骤S11包括如下步骤S21:

在步骤S21中,获取至少一个用户输入的至少一条查询信息。

在一个实施例中,本方案可在预设时间间隔周期t内,获取n个用户的m条查询信息之后,其中,正整数m大于等于正整数n,再进行后续的查询处理;还可以在用户甲输入多个查询业务之后,再用户甲输入执行查询业务之后,再进行后续的查询处理。

在一个实施例中,如图3所示,步骤S12包括如下步骤S31-S32:

在步骤S31中,分析所述查询信息所包含的属性项,所述属性项的数量至少为两个;

在步骤S32中,分析所述查询信息所包含的对象ID的取值范围。

在一个实施例中,数据库中的每一个对象ID都包括至少两项的属性项。查询范围包括两个维度,第一维度是查询的属性项的数量和种类;第二维度是查询的对象ID的取值范围。第一维度和第二维度彼此相互独立。通过第一维度和第二维度的限定,可有效的缩小数据库中的检索范围。进而降低了数据库系统进行查询业务时的系统占用率,也减少了用户进行查询业务时的等待时长。

在一个实施例中,如图4所示,步骤S13包括如下步骤S41-S43:

在步骤S41中,在预设的数据库中,根据所述查询范围生成所述临时缓存表;

在步骤S42中,计算出所述临时缓存表所需占用的数据空间大小;

在步骤S43中,在内存中调用所述数据空间大小的内存空间来存储所述临时缓存表。

在一个实施例中,根据上一个实施例中的技术方案,可有效的缩小数据库中的检索范围。在预设的数据库中,根据缩小之后的查询范围来生成临时缓存表,该临时缓存表的生成中期是有限定的,当到达预设撤销时限或者触发预设的撤销条件时,销毁该临时缓存表。在内存中临时存储该临时缓存表,系统会根据该临时缓存表所占用的数据空间的大小来安排合适的内存空间来存储该临时缓存表。该合适的内存空间略大于所述该临时缓存表所占用的数据空间的连续内存空间。

在一个实施例中,如图5所示,步骤S4包括如下步骤S51-S53:

在步骤S51中,在所述临时缓存表所占据的内存空间内处理所述查询信息;

在步骤S52中,判断所述内存空间内的数据是否发生改变;

在步骤S53中,当所述内存空间内的数据发生改变时,将所述临时缓存表的数据同步更新到所述数据库。

在一个实施例中,在所述临时缓存表所占据的内存空间内处理该查询信息。首先可避免加载整个数据库中的信息到内存中,加载数据量庞大的数据库需要消耗大量的内存资源和较长的时长。其次,可有效的缩小检索的范围,大大增加处理该查询信息的速度。再次,直接在内存中处理查询信息,避免了频繁的I/O操作所消耗的系统资源。还有,用户不仅仅可进行查询业务时,还可以进行数据修改业务。实时判断该内存空间内的数据是否发生改变,当该内存空间内的所述发生改变时,将该临时缓存表的数据实时同步更新到所述数据库。

在一个实施例中,图6是根据一示例性实施例示出的一种处理查询的装置框图。如图6示,该装置包括获取模块61、分析模块62、生成模块63和处理模块64。

该获取模块61,用于获取用户输入的查询信息;

该分析模块62,用于分析所述查询信息的查询范围;

该生成模块63,用于在预设的数据库中,根据所述查询范围生成临时缓存表;

该处理模块64,用于根据所述临时缓存表,处理所述查询信息。

如图7所示,该获取模块61包括获取子模块71。

该获取子模块71,用于获取至少一个用户输入的至少一条查询信息。

如图8所示,该分析模块62包括第一分析子模块81和第二分析子模块82。

该第一分析子模块81,用于分析所述查询信息所包含的属性项,所述属性项的数量至少为两个;

该第二分析子模块82,用于分析所述查询信息所包含的对象ID的取值范围。

如图9所示,该生成模块63包括生成子模块91、计算子模块92和存储子模块93。

该生成子模块91,用于在预设的数据库中,根据所述查询范围生成所述临时缓存表;

该计算子模块92,用于计算出所述临时缓存表所需占用的数据空间大小;

该存储子模块93,用于在内存中调用所述数据空间大小的内存空间来存储所述临时缓存表。

如图10所示,该处理模块64包括处理子模块101、判断子模块102和同步子模块103说。

该处理子模块101,用于在所述临时缓存表所占据的内存空间内处理所述查询信息;

该判断子模块102,用于判断所述内存空间内的数据是否发生改变;

该同步子模块103,用于当所述内存空间内的数据发生改变时,将所述临时缓存表的数据同步更新到所述数据库。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1