一种用于在数据库中进行查询的方法与设备的制造方法

文档序号:9708343阅读:334来源:国知局
一种用于在数据库中进行查询的方法与设备的制造方法
【技术领域】
[0001]本申请涉及数据库技术领域,尤其涉及一种用于在数据库中进行查询的技术。
【背景技术】
[0002]在对数据库进行操作时,若数据库一张表中的数据量过大,执行操作率将会降低,若是将一张表划分成若干个子表,则对数据库进行执行操作时的压力将会分摊降低。
[0003]目前,该领域采用的方案为:利用数据库技术联合查询所述若干个子表:首先通过联合查询获得满足查条件的多个子表中的记录数的总和;然后利用数据库技术,分页及排序查询出满足查询条件的数据记录。但是当每一张子表的数据量依然很大时,多表联合查询将长时间占用数据库连接,造成其他线程的等待,从而极大消耗了数据库资源,严重影响到对数据库的执行操作和数据库的性能。

【发明内容】

[0004]本申请的目的是提供一种用于在数据库中进行查询的方法与设备。
[0005]根据本申请的一个方面,提供了一种用于在数据库中进行查询的方法,包括:
[0006]获取第一查询信息在由数据库中一表划分所得的多个子表中的查询记录;
[0007]确定请求页所对应的页记录位置信息,其中,所述页记录位置信息包括所述请求页中各查询记录在所述多个子表中的记录位置信息;
[0008]根据所述页记录位置信息从所述多个子表获取对应记录以生成所述请求页;
[0009]根据所述第一查询信息与所述页记录位置信息的映射关系更新对应缓存。
[0010]根据本申请的另一方面,还提供了一种用于在数据库中进行查询的设备,包括:
[0011]第一装置,用于获取第一查询信息在由数据库中一表划分所得的多个子表中的查询记录;
[0012]第二装置,用于确定请求页所对应的页记录位置信息,其中,所述页记录位置信息包括所述请求页中各查询记录在所述多个子表中的记录位置信息;
[0013]第三装置,用于根据所述页记录位置信息从所述多个子表获取对应记录以生成所述请求页;
[0014]第四装置,用于根据所述第一查询信息与所述页记录位置信息的映射关系更新对应缓存。
[0015]与现有技术相比,本申请通过获得请求页所对应的页记录位置信息,进而通过所述页记录位置信息快速读取对应各表上的相应数据库记录,避免了联合查询各表数据带来的大量数据的数据库操作的时间耗费和资源耗费;同时,将所述查询信息与对应的所述页记录位置信息进行缓存,当对所述数据库再次进行相同操作时,可以直接通过缓存数据快速读取相应数据库记录,进一步提高了数据库操作的效率,从而优化了数据库性能。
【附图说明】
[0016]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0017]图1示出根据本申请一个方面的一种用于在数据库中进行查询的设备示意图;
[0018]图2示出根据本申请另一个方面的一种用于在数据库中进行查询的方法流程图。
[0019]附图中相同或相似的附图标记代表相同或相似的部件。
【具体实施方式】
[0020]下面结合附图对本申请作进一步详细描述。
[0021]在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0022]内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0023]计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPR0M)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0024]图1示出根据本申请一个方面的一种用于在数据库中进行查询的设备示意图。所述用于在数据库中进行查询的设备1包括第一装置101、第二装置102、第三装置103和第四装置104.
[0025]其中,第一装置101获取第一查询信息在由数据库中一表划分所得的多个子表中的查询记录;第二装置确定请求页所对应的页记录位置信息,其中,所述页记录位置信息包括所述请求页中各查询记录在所述多个子表中的记录位置信息;第三装置根据所述页记录位置信息从所述多个子表获取对应记录以生成所述请求页;第四装置根据所述第一查询信息与所述页记录位置信息的映射关系更新对应缓存。
[0026]具体地,用于在数据库中进行查询的设备1的第一装置101获取第一查询信息在由数据库中一表划分所得的多个子表中的查询记录。所述第一查询信息包括查询所述数据库中记录所对应的查询条件,优选地还可包括所述请求页的序号和/或所述请求页的记录数信息。其中,所述查询条件,如多个子表的选择条件、所述分页查询的请求页序号,例如,按照条件A划分数据库中一张表,则对于条件A某一范围内的表进行查询就属于所述查询条件;又如,所述查询条件还包括设定的请求页的序号,如第3请求页序号。
[0027]在此,依据所述第一查询信息中的部分条件,如多个子表的选择条件等分表查询出每张子表上满足相应条件的查询记录,并获得对应的记录数。例如,所述各个子表为t201301, t201302, t201303, t201304, t201305......多张月表,所述第一查询信息为:创建时间在2013.01.08-2013.04.08之间;年龄大于50 ;第三页;页记录10。根据时间范围可计算出要查询t_201301, t_201302, t_201303, t_201304四张子表,这时分表查询出每张子表中条件为年龄大于50的记录数,
[0028]本领域技术人员应能理解,上述所述第一查询信息包括查询所述数据库中记录所对应的查询条件,优选地还可包括所述请求页的序号和/或所述请求页的记录数信息仅为举例,其他进行查询的第一查询信息如可适用本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0029]接着,用于在数据库中进行查询的设备1的第二装置102确定请求页所对应的页记录位置信息,其中,所述页记录位置信息包括所述请求页中各查询记录在所述多个子表中的记录位置信息。通过所述请求页所对应的页记录位置信息可以确定所述第一查询信息对应的查询记录在数据库中的位置,从而基于所述查询记录在数据库中的位置便能够找到相应的查询记录。在此,根据所述第一查询信息,如,所述分页查询的请求页和所述请求页的记录数,可以确定页记录位置信息,如所述请求页中个查询记录在所述多个子表中的记录位置信息。
[0030]例如,所述第一查询信息包括所述分页查询的请求页为第3页,所述请求页的记录数为10个,则对于所述多个子表进行分表查询时,首先查询出每张子表的记录数,如,有3张要查询的子表,第1张子表上记录1至20条记录,第二张子表上记录21至40条记录,第三张子表上记录了 41至70条记录,此时,依据所述分页查询的请求页为第3页,所述请求页的记录数为10个,可知第三页上的数据记录为表上21至30条记录,又通过每张子表的记
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1