CN107193822A - 用于分页查询的方法、装置及设备 - Google Patents

用于分页查询的方法、装置及设备 Download PDF

Info

Publication number
CN107193822A
CN107193822A CN201610143970.6A CN201610143970A CN107193822A CN 107193822 A CN107193822 A CN 107193822A CN 201610143970 A CN201610143970 A CN 201610143970A CN 107193822 A CN107193822 A CN 107193822A
Authority
CN
China
Prior art keywords
paging
data
tables
target
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610143970.6A
Other languages
English (en)
Inventor
张伟胜
周杰
吴斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610143970.6A priority Critical patent/CN107193822A/zh
Publication of CN107193822A publication Critical patent/CN107193822A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请公开了一种用于分页查询的方法、装置及设备,所述方法包括:响应于接收到分页查询的请求,分别对每个待查询数据库中的每张数据表进行查询统计,其中,所述请求包括查询条件及每个分页容纳的记录条数;确定目标分页的分页号;基于所述目标分页的分页号以及每个分页容纳的记录条数,确定所述目标分页的起始行号以及结束行号;根据所述查询统计的结果以及所述目标分页的起始行号和结束行号,确定所述目标分页的分页记录对应的数据表;从所述对应的数据表中获取所述目标分页的分页记录;并且返回所述目标分页的分页记录。该实施方式提高了基于分库分表进行分页查询的效率。

Description

用于分页查询的方法、装置及设备
技术领域
本申请涉及数据库技术领域,尤其涉及用于分页查询的方法、装置及设备。
背景技术
一方面,随着互联网技术与大数据分析技术的不断发展,数据库中的数据量越来越大。为了减小对海量数据的增删修改和查询的开销,提高数据处理能力,通常会将数据量过大的原始数据库及原始数据表进行拆分,按照关键字段存储到多个数据库以及多个数据表中,称为分库分表。因此,采用分库分表管理的数据量一般比较巨大。另一方面,目前在数据库中查询数据时,一般采用分页查询的方法进行查询。
现有技术中,在基于分库分表对多个数据库以及多个数据表进行分页查询时,通常是将符合查询条件的所有记录取出后,放在内存中,然后,从内存中查找出目标分页对应的查询记录。然而,当数据量过大时,分页查询的过程会占用过多的内存以及网络资源,从而导致了基于分库分表进行分页查询的效率低下的问题。
发明内容
为了解决上述技术问题,本申请提供了一种用于分页查询的方法、装置及设备。
根据本申请实施例的第一方面,提供一种用于分页查询的方法,所述方法包括:
响应于接收到分页查询的请求,分别对每个待查询数据库中的每张数据表进行查询统计,其中,所述请求包括查询条件及每个分页容纳的记录条数;
确定目标分页的分页号;
基于所述目标分页的分页号以及每个分页容纳的记录条数,确定所述目标分页的起始行号以及结束行号;
根据所述查询统计的结果以及所述目标分页的起始行号和结束行号,确定所述目标分页的分页记录对应的数据表;
从所述对应的数据表中获取所述目标分页的分页记录;并且
返回所述目标分页的分页记录。
根据本申请实施例的第二方面,提供一种用于分页查询的装置,所述装置包括:
查询单元,用于响应于接收到分页查询的请求,分别对每个待查询数据库中的每张数据表进行查询统计,其中,所述请求包括查询条件及每个分页容纳的记录条数;
第一确定单元,用于确定目标分页的分页号;
第二确定单元,用于基于所述目标分页的分页号以及每个分页容纳的记录条数,确定所述目标分页的起始行号以及结束行号;
第三确定单元,用于根据所述查询统计的结果以及所述目标分页的起始行号和结束行号,确定所述目标分页的分页记录对应的数据表;
获取单元,用于从所述对应的数据表中获取所述目标分页的分页记录;
返回单元,用于返回所述目标分页的分页记录。
根据本申请实施例的第三方面,提供一种设备,包括:
处理器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为:
响应于接收到分页查询的请求,分别对每个待查询数据库中的每张数据表进行查询统计,其中,所述请求包括查询条件及每个分页容纳的记录条数;
确定目标分页的分页号;
基于所述目标分页的分页号以及每个分页容纳的记录条数,确定所述目标分页的起始行号以及结束行号;
根据所述查询统计的结果以及所述目标分页的起始行号和结束行号,确定所述目标分页的分页记录对应的数据表;
从所述对应的数据表中获取所述目标分页的分页记录;并且
返回所述目标分页的分页记录。
应用本申请实施例,在接收到分页查询的请求时,分别对每个待查询数据库中的每张数据表进行查询统计,确定目标分页的分页号,根据查询统计的结果确定目标分页的起始行号以及结束行号,进一步确定目标分页的分页记录对应的数据表,从上述对应的数据表中获取目标分页的分页记录,并返回目标分页的分页记录。因此,无需将所有待查询数据库中符合查询条件的所有记录取出放在内存中,从而提高了基于分库分表进行分页查询的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为应用本申请实施例的示例性系统架构示意图;
图2为本申请用于分页查询的方法的一个实施例流程图;
图3A为本申请用于分页查询的方法的另一个实施例流程图;
图3B为本申请目标分页的分页记录与对应的数据表的一种对应关系的示意图;
图3C为本申请目标分页的分页记录与对应的数据表的另一种对应关系的示意图;
图4为本申请用于分页查询的装置所在设备的一种硬件结构图;
图5为本申请用于分页查询的装置的一个实施例框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
参见图1,为应用本申请实施例的示例性系统架构示意图:
如图1所示,系统架构100可以包括终端设备101、102、网络103和服务器104。网络103用于在终端设备101、102和服务器104之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102可以通过网络103与服务器104交互,以接收或发送请求或信息等。终端设备101、102可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机以及台式电脑等等。服务器104可以是提供各种服务的服务器。服务器可以对接收到的数据进行存储、分析等处理,并将处理结果反馈给终端设备。服务器可以响应于用户的服务请求而提供服务。可以理解,一个服务器可以提供一种或多种服务,同一种服务也可以由多个服务器来提供。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
基于图1示出的系统架构,本申请实施例中,终端设备101或终端设备102可以通过网络103向服务器104发送分页查询的请求,服务器104响应于接收到分页查询的请求,执行查询操作,以获得查询结果。然后,服务器104可以通过网络103向终端设备101或终端设备102返回查询结果,以供终端设备101或终端设备102将查询结果显示出来。下面将结合具体的实施例对本申请进行详细描述。
参见图2,为本申请用于分页查询的方法的一个实施例流程图,该实施例可以应用在服务器端,包括如下步骤:
在步骤201中,响应于接收到分页查询的请求,分别对每个待查询数据库中的每张数据表进行查询统计。
一般来说,一方面,如果数据库中的数据量特别巨大,则不适于将所有数据存放在一个数据库中的一张数据表中。可以将数据按照关键字段存储到多个数据库的多张数据表中,称为分库分表。其中,分库是指将海量数据由一个数据库存储管理拆分为多个数据库存储管理,分表是指将海量数据由一个数据表存储管理拆分为多个数据表存储管理。另一方面,当采用某个查询条件对数据库中的数据进行查询时,可能存在大量符合条件的记录。如果将这些符合条件的记录全部显示于一页,可能会导致服务器间传输超时,内存和网络资源耗尽等问题。所以,可以进行分页查询,分多页显示查询结果,每页为一个分页,每分页只显示部分查询出的记录。
在本实施例中,基于分库分表查询数据,需要查询的数据记录在多个数据库的多张数据表中,一般数据量比较巨大。当接收到终端发送的分页查询的请求时,可以根据该请求分别对每个待查询数据库中的每张数据表进行查询统计,以确定每个待查询数据库中的每张数据表中符合查询条件的记录。其中,分页查询的请求可以包括查询条件及每个分页容纳的记录条数等。
在步骤202中,确定目标分页的分页号。
在本实施例中,目标分页为用户需进行浏览的目标页,分页号是指每个分页的页号。例如,用户需要查看第3页的查询结果,则查询结果的第3页为目标分页,3为目标分页的分页号。
在本实施例中,在对每个待查询数据库中的每张数据表进行查询统计后,进一步需要确定目标分页的分页号。具体来说,目标分页的分页号可以是默认的,也可以是根据用户的操作或输入的信息确定的。例如,当用户第一次进行查询时,目标分页的分页号可以默认为1,因为,一般进行首次查询时,通常显示查询结果的第1页。又例如,若已经显示某个分页的查询结果后,用户可以通过点击上一页或者下一页进行翻页,则可以确定目标分页的分页号为当前显示的分页的分页号减一(点击上一页往前翻页)或者加一(点击下一页往后翻页)。再例如,用户还可以通过直接输入目标分页的分页号从而直接跳转到目标分页。因此,可以根据用户输入的翻页信息确定目标分页的分页号。可以理解,还可以有其它确定目标分页的分页号的方式,本申请对确定目标分页的分页号的具体方式方面不限定。
在步骤203中,基于目标分页的分页号以及每个分页容纳的记录条数,确定目标分页的起始行号以及结束行号。
一般来说,每个分页能够容纳预定数量的记录条数,每条记录占一行,对分页查询的记录进行编号,每条记录对应的编号可以用行号表示。在本实施例中,可以基于目标分页的分页号以及每个分页容纳的记录条数,确定目标分页的起始行号以及结束行号。其中,目标分页的起始行号既为目标分页中第一条记录对应的行号,目标分页的结束行号既为目标分页中最后一条记录对应的行号。例如,假设目标分页的第一条记录对应的行号为m,则该目标分页的起始行号为m。目标分页的最后一条记录对应的行号为n,则该目标分页的结束行号为n。
在步骤204中,根据上述查询统计的结果以及目标分页的起始行号和结束行号,确定目标分页的分页记录对应的数据表。
在本实施例中,目标分页的分页记录对应的数据表为包含目标分页的分页记录的数据表。一般来说,每个数据库、每张数据表以及数据表中的每条记录均分别对应一个的编号,在分页显示查询结果时,并不是按照随机的顺序显示查询记录,而是按照记录对应的编号顺序显示查询记录。因此,来自相同的数据表的查询记录在分页显示时,是连续排列的。在本实施例中,当分别确定了目标分页的起始行以及结束行的分页记录对应的数据表后,则可以容易的确定该目标分页中所有的分页记录对应的数据表。
在步骤205中,从上述对应的数据表中获取该目标分页的分页记录。
在步骤206中,返回该目标分页的分页记录。
在本实施例中,可以将上述目标分页的分页记录对应的数据表里符合查询条件的所有记录提取出来,按行号的顺序放在内存中。然后,进一步根据目标分页的起始行号以及结束行号,从上述放在内存中的记录里查找出该目标分页的分页记录。最后,将查找出的上述记录返回给发送分页查询请求的终端,以供该终端在目标分页中显示上述查询结果。
应用上述实施例,在接收到分页查询的请求时,分别对每个待查询数据库中的每张数据表进行查询统计,确定目标分页的分页号,确定目标分页的起始行号以及结束行号,根据查询统计的结果进一步确定目标分页的分页记录对应的数据表,从上述对应的数据表中获取目标分页的分页记录,并且返回目标分页的分页记录。因此,无需将所有待查询数据库中符合查询条件的所有记录取出放在内存中,从而提高了基于分库分表进行分页查询的效率。
参见图3A,为本申请用于分页查询的方法的另一个实施例流程图,该实施例结合具体的例子对用于分页查询的过程进行详细描述:
在步骤301中,响应于接收到分页查询的请求,从待查询数据库中查找出包含命中记录的数据表,作为目标数据表。
在本实施例中,上述请求包括查询条件及每个分页容纳的记录条数。可以将符合查询条件的记录作为命中记录,从待查询数据库中查找出包含命中记录的数据表,作为目标数据表。具体来说,在每个待查询数据库中,可以包含多张数据表,对于任意一个查询条件,并不一定每张数据表中均包含符合该查询条件的命中记录。可能部分数据表中包含命中记录,其它数据表中不包含命中记录。因此,可以先根据请求中包含的查询条件对每个待查询数据库中的每张数据表进行查询,将所有包含命中记录的数据表查找出来作为目标数据表,可以将查找出的目标数据表的标识信息记录下来。
在步骤302中,统计每张目标数据表中的命中记录的条数。
在本实施例中,查找出包含命中记录的数据表后,进一步统计每张目标数据表中包含的命中记录的条数。并可以将每张目标数据表中包含的命中记录的条数与对应的目标数据表的标识信息进行关联地存储。
在步骤303中,确定每张目标数据表中包含的命中记录的行号范围。
在本实施例中,由于每条查询记录对应一个行号,因此,可以确定每张目标数据表中包含的命中记录的行号范围。每个数据库、每张数据表以及数据表中的每条记录均分别对应一个的编号,在分页显示查询结果时,是按照记录对应的编号顺序显示查询记录。
具体来说,首先,按数据库编号以及数据表编号的顺序将所有目标数据表进行排序。然后,将排序中的第一张数据表的行号范围的起始行号设定为1,结束行号设定为与该数据表中包含的命中记录的条数相等的数值。对于排序中的第N张数据表,计算前N-1张数据表中命中记录的条数之和再加1,得到第一数值,将第一数值作为该第N张数据表行号范围的起始行号,并计算前N张数据表中命中记录的条数之和,得到第二数值,将第二数值作为该第N张数据表行号范围的结束行号,其中,N不等于1。
例如,假设有三个待查询数据库,这三个数据库的编号分别为A1,A2,A3。A1包含三张数据表,编号分别为001,002,003;A2也包含三张数据表,编号分别为004,005,006;A3也包含三张数据表,编号分别为007,008,009。其中,包含命中记录的目标数据表有001,002,005,006,008,009六张表。这六张表包含的命中记录的条数分别为3,5,2,5,3,2。
首先,按数据库编号以及数据表编号的顺序可以将所有目标数据表进行如下排序:001,002,005,006,008,009。可知,排序中的第一张数据表为001,其行号范围的起始行号设定为1,结束行号设定为3。排序中的第二张数据表为002,其行号范围的起始行号为前1张数据表中命中记录的条数之和再加1,即为4,结束行号为前2张数据表中命中记录的条数之和8。同理,排序中的第三张数据表为005,其行号范围的起始行号为前2张数据表中命中记录的条数之和再加1,即为9,结束行号为前3张数据表中命中记录的条数之和10。
以此类推,排序中的第四张数据表为006,其行号范围的起始行号为11,结束行号为15。排序中的第五张数据表为008,其行号范围的起始行号16,结束行号为18。排序中的第六张数据表为009,其行号范围的起始行号19,结束行号为20。
在步骤304中,确定目标分页的分页号。
在本实施例中,还可以计算出命中记录的总条数,并可以根据每个分页容纳的记录条数确定查询结果的总页数。可以将总页数返回给请求查询的终端,以供用户在总页数的范围内选择目标分页。可以根据默认的信息确定目标分页的分页号,也可以是根据用户的选择操作或输入的信息确定目标分页的分页号。
在步骤305中,基于目标分页的分页号以及每个分页容纳的记录条数,确定该目标分页的起始行号以及结束行号。
在本实施例中,可以基于目标分页的分页号以及每个分页容纳的记录条数确定该目标分页的起始行号以及结束行号。具体来说,计算目标分页的分页号与每个分页容纳的记录条数的乘积,作为目标分页的结束行号。计算目标分页的结束行号减每个分页容纳的记录条数的差,再加1,作为目标分页的起始行号。例如,假设目标分页的分页号为s,每个分页容纳的记录条数为v,目标分页的结束行号为x,则x=s*v,目标分页的起始行号为y,则y=x-v+1。
在步骤306中,根据上述查询统计的结果以及目标分页的起始行号和结束行号,确定目标分页的分页记录对应的数据表。
在本实施例中,可以根据上述查询统计的结果以及目标分页的起始行号和结束行号,确定目标分页的分页记录对应的数据表。其中,目标分页的分页记录对应的数据表即为任意包含目标分页的分页记录的数据表。具体来说,首先可以确定目标分页的起始行对应的目标数据表(包含目标分页的起始行的分页记录的数据表)作为起始行数据表,以及目标分页的结束行对应的目标数据表(包含目标分页的结束行的分页记录的数据表)作为结束行数据表。使得目标分页的起始行号落在起始行数据表包含的命中记录的行号范围内,目标分页的结束行号落在结束行数据表包含的命中记录的行号范围内。
接着,判断起始行数据表与结束行数据表是否为同一张数据表。若起始行数据表与结束行数据表为同一张数据表,则该数据表为目标分页的分页记录对应的数据表。例如,参见图3B,为一种目标分页的分页记录与对应的数据表的对应关系的示意图。当目标分页的分页记录全部包含在一张目标数据表中时,则可以判断出起始行数据表与结束行数据表为同一张数据表。此时,该包含全部目标分页的分页记录的数据表为目标分页的分页记录对应的数据表。
若起始行数据表与结束行数据表为不同数据表,则按数据库编号以及数据表编号的顺序,找出目标数据表(包含命中记录的数据表)中从起始行数据表到结束行数据表的目标数据表,作为目标分页的分页记录对应的数据表。例如,参见图3C,为另一种目标分页的分页记录与对应的数据表的对应关系的示意图。当目标分页的分页记录分别包含在不同的目标数据表中时,则可以判断出起始行数据表与结束行数据表为不同的数据表。如果按数据库编号以及数据表编号的顺序,在起始行数据表与结束行数据表之间不存在其它包含命中记录的目标数据表(起始行数据表与结束行数据表相邻),则该起始行数据表与结束行数据表为目标分页的分页记录对应的数据表。如果按数据库编号以及数据表编号的顺序,在起始行数据表与结束行数据表之间存在其它包含命中记录的目标数据表,则该起始行数据表与结束行数据表,以及起始行数据表与结束行数据表之间的目标数据表均为目标分页的分页记录对应的数据表。
例如,结合步骤303的例子,假设有三个待查询数据库,这三个数据库的编号分别为A1,A2,A3。A1包含三张数据表,编号分别为001,002,003;A2也包含三张数据表,编号分别为004,005,006;A3也包含三张数据表,编号分别为007,008,009。其中,包含命中记录的目标数据表有001,002,005,006,008,009六张表。设001的行号范围为[1,3],002的行号范围为[4,8],005的行号范围为[9,10],006的行号范围为[11,15],008的行号范围为[16,18],009的行号范围为[19,20]。若目标分页的起始行的行号为12,结束行的行号为19。则可知,目标分页的起始行的行号12落在006数据表的行号范围[11,15]内,因此,目标分页的起始行对应的数据表为006(006数据表中包含目标分页的起始行的分页记录)。目标分页的结束行的行号19落在009数据表的行号范围[19,20]内,因此,目标分页的结束行对应的数据表为009(009数据表中包含目标分页的结束行的分页记录)。接着,按数据库编号以及数据表编号的顺序对所有目标数据表进行排序,006、009以及排在006和009之间的数据表008为目标分页的分页记录对应的数据表。
在步骤307中,从上述对应的数据表中获取该目标分页的分页记录。
在本实施例中,可以从上述对应的数据表中获取该目标分页的分页记录。具体来说,从上述对应的数据表中获取所有命中记录,将这些命中记录与对应的行号关联地存放在内存中,按照目标分页的起始行号以及结束行号从内存中取出行号对应的命中记录,作为目标分页的分页记录。
例如,结合步骤305中的例子,从上述数据表006,008,009中获取所有命中记录,这些命中记录的行号范围为[11,20],将这些命中记录与对应的行号关联地存放在内存中。另外,目标分页的起始行号以及结束行号分别为12和19。根据目标分页的起始行号以及结束行号从内存中取出行号从12到19的命中记录,作为目标分页的分页记录。
在步骤308中,返回该目标分页的分页记录。
应用上述实施例,在接收到分页查询的请求时,将符合查询条件的记录作为命中记录,从待查询数据库中查找出包含命中记录的数据表,作为目标数据表,统计每张目标数据表中的命中记录的条数,确定每张目标数据表中包含的命中记录的行号范围,以确定目标分页的起始行号以及结束行号,确定目标分页的分页号,并进一步确定目标分页的分页记录对应的数据表,从上述对应的数据表中获取目标分页的分页记录,并返回目标分页的分页记录。无需将所有待查询数据库中符合查询条件的所有记录取出放在内存中,从而有助于提高基于分库分表进行分页查询的效率。
应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
与本申请用于分页查询的方法的实施例相对应,本申请还提供了用于分页查询的装置及设备的实施例。
本申请用于分页查询的装置的实施例可以应用在设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请用于分页查询的装置所在设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,图4中不再一一示出。
参见图5,为本申请用于分页查询的装置的一个实施例框图。
该装置包括:查询单元510、第一确定单元520、第二确定单元530、第三确定单元540、获取单元550和返回单元560。
其中,查询单元510,用于响应于接收到分页查询的请求,分别对每个待查询数据库中的每张数据表进行查询统计,其中,所述请求包括查询条件及每个分页容纳的记录条数;
第一确定单元520,用于确定目标分页的分页号;
第二确定单元530,用于基于所述目标分页的分页号以及每个分页容纳的记录条数确定所述目标分页的起始行号以及结束行号;
第三确定单元540,用于根据所述查询统计的结果以及所述目标分页的起始行号和结束行号确定所述目标分页的分页记录对应的数据表;
获取单元550,用于从所述对应的数据表中获取所述目标分页的分页记录;
返回单元560,用于返回所述目标分页的分页记录。
在一个可选的实现方式中,所述查询单元510可以包括(图5中未示出):
查找子单元,用于从所述待查询数据库中查找出包含命中记录的数据表,作为目标数据表,其中,所述命中记录为符合所述查询条件的记录;
统计子单元,用于统计每张所述目标数据表中命中记录的条数;
确定子单元,用于确定每张所述目标数据表中包含的命中记录的行号范围。
在另一个可选的实现方式中,所述确定子单元可以包括(图5中未示出):
排序模块,用于按数据库编号以及数据表编号的顺序将所述目标数据表进行排序;
设定模块,用于将所述排序中的第一张数据表行号范围的起始行号设定为1,结束行号设定为与该数据表中包含的命中记录的条数相等的数值;
计算模块,用于计算前N-1张数据表中命中记录的条数之和再加1,得到第一数值,将所述第一数值作为所述第N张数据表行号范围的起始行号,并计算前N张数据表中命中记录的条数之和,得到第二数值,将所述第二数值作为所述第N张数据表行号范围的结束行号,其中,N不等于1。
在另一个可选的实现方式中,所述第二确定单元530可以包括(图5中未示出):
第一计算子单元,用于计算所述目标分页的分页号与每个分页容纳的记录条数的乘积,作为所述目标分页的结束行号;
第二计算子单元,用于计算所述目标分页的结束行号减每个分页容纳的记录条数的差,再加1,作为所述目标分页的起始行号。
在另一个可选的实现方式中,所述第三确定单元540配置用于:确定目标分页的起始行对应的目标数据表作为起始行数据表,以及目标分页的结束行对应的目标数据表作为结束行数据表,使得目标分页的起始行号落在起始行数据表包含的命中记录的行号范围内,目标分页的结束行号落在结束行数据表包含的命中记录的行号范围内;
判断所述起始行数据表与所述结束行数据表是否为同一张数据表;若是,则该数据表为目标分页的分页记录对应的数据表;
若否,则按数据库编号以及数据表编号的顺序,找出目标数据表中从所述起始行数据表到所述结束行数据表的目标数据表,作为目标分页的分页记录对应的数据表。
在另一个可选的实现方式中,所述获取单元550可以包括(图5中未示出):
获取子单元,用于从所述对应的数据表中获取命中记录;
存放子单元,用于将所述命中记录与对应的行号关联地存放在内存中;
提取子单元,用于按照目标分页的起始行号以及结束行号从内存中取出行号对应的命中记录,作为所述目标分页的分页记录。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
应当理解,上述装置可以预先设置在服务器中,也可以通过下载等方式而加载到服务器中。上述装置中的相应模块单元可以与服务器中的模块单元相互配合以实现用于分页查询的方案。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (13)

1.一种用于分页查询的方法,其特征在于,所述方法包括:
响应于接收到分页查询的请求,分别对每个待查询数据库中的每张数据表进行查询统计,其中,所述请求包括查询条件及每个分页容纳的记录条数;
确定目标分页的分页号;
基于所述目标分页的分页号以及每个分页容纳的记录条数,确定所述目标分页的起始行号以及结束行号;
根据所述查询统计的结果以及所述目标分页的起始行号和结束行号,确定所述目标分页的分页记录对应的数据表;
从所述对应的数据表中获取所述目标分页的分页记录;并且
返回所述目标分页的分页记录。
2.根据权利要求1所述的方法,其特征在于,所述分别对每个待查询数据库中的每张数据表进行查询统计,包括:
从所述待查询数据库中查找出包含命中记录的数据表,作为目标数据表,其中,所述命中记录为符合所述查询条件的记录;
统计每张所述目标数据表中命中记录的条数;
确定每张所述目标数据表中包含的命中记录的行号范围。
3.根据权利要求2所述的方法,其特征在于,所述确定每张所述目标数据表中包含的命中记录的行号范围,包括:
按数据库编号以及数据表编号的顺序将所述目标数据表进行排序;
将排序中的第一张数据表行号范围的起始行号设定为1,结束行号设定为与该数据表中包含的命中记录的条数相等的数值;
对于第N张数据表,计算前N-1张数据表中命中记录的条数之和再加1,得到第一数值,将所述第一数值作为所述第N张数据表行号范围的起始行号,并计算前N张数据表中命中记录的条数之和,得到第二数值,将所述第二数值作为所述第N张数据表行号范围的结束行号,其中,N不等于1。
4.根据权利要求2所述的方法,其特征在于,所述基于所述目标分页的分页号以及每个分页容纳的记录条数,确定所述目标分页的起始行号以及结束行号,包括:
计算所述目标分页的分页号与每个分页容纳的记录条数的乘积,作为所述目标分页的结束行号;
计算所述目标分页的结束行号减每个分页容纳的记录条数的差,再加1,作为所述目标分页的起始行号。
5.根据权利要求2所述的方法,其特征在于,所述确定所述目标分页的分页记录对应的数据表,包括:
确定目标分页的起始行对应的目标数据表作为起始行数据表,以及目标分页的结束行对应的目标数据表作为结束行数据表,使得目标分页的起始行号落在起始行数据表包含的命中记录的行号范围内,目标分页的结束行号落在结束行数据表包含的命中记录的行号范围内;
判断所述起始行数据表与所述结束行数据表是否为同一张数据表;若是,则该数据表为目标分页的分页记录对应的数据表;
若否,则按数据库编号以及数据表编号的顺序,找出目标数据表中从所述起始行数据表到所述结束行数据表的目标数据表,作为目标分页的分页记录对应的数据表。
6.根据权利要求2所述的方法,其特征在于,所述从所述对应的数据表中获取所述目标分页的分页记录,包括:
从所述对应的数据表中获取命中记录;
将所述命中记录与对应的行号关联地存放在内存中;
按照目标分页的起始行号以及结束行号从内存中取出行号对应的命中记录,作为所述目标分页的分页记录。
7.一种用于分页查询的装置,其特征在于,所述装置包括:
查询单元,用于响应于接收到分页查询的请求,分别对每个待查询数据库中的每张数据表进行查询统计,其中,所述请求包括查询条件及每个分页容纳的记录条数;
第一确定单元,用于确定目标分页的分页号;
第二确定单元,用于基于所述目标分页的分页号以及每个分页容纳的记录条数,确定所述目标分页的起始行号以及结束行号;
第三确定单元,用于根据所述查询统计的结果以及所述目标分页的起始行号和结束行号,确定所述目标分页的分页记录对应的数据表;
获取单元,用于从所述对应的数据表中获取所述目标分页的分页记录;
返回单元,用于返回所述目标分页的分页记录。
8.根据权利要求7所述的装置,其特征在于,所述查询单元包括:
查找子单元,用于从所述待查询数据库中查找出包含命中记录的数据表,作为目标数据表,其中,所述命中记录为符合所述查询条件的记录;
统计子单元,用于统计每张所述目标数据表中命中记录的条数;
确定子单元,用于确定每张所述目标数据表中包含的命中记录的行号范围。
9.根据权利要求8所述的装置,其特征在于,所述确定子单元包括:
排序模块,用于按数据库编号以及数据表编号的顺序将所述目标数据表进行排序;
设定模块,用于将排序中的第一张数据表行号范围的起始行号设定为1,结束行号设定为与该数据表中包含的命中记录的条数相等的数值;
计算模块,用于计算前N-1张数据表中命中记录的条数之和再加1,得到第一数值,将所述第一数值作为所述第N张数据表行号范围的起始行号,并计算前N张数据表中命中记录的条数之和,得到第二数值,将所述第二数值作为所述第N张数据表行号范围的结束行号,其中,N不等于1。
10.根据权利要求8所述的装置,其特征在于,所述第二确定单元包括:
第一计算子单元,用于计算所述目标分页的分页号与每个分页容纳的记录条数的乘积,作为所述目标分页的结束行号;
第二计算子单元,用于计算所述目标分页的结束行号减每个分页容纳的记录条数的差,再加1,作为所述目标分页的起始行号。
11.根据权利要求8所述的装置,其特征在于,所述第三确定单元配置用于:
确定目标分页的起始行对应的目标数据表作为起始行数据表,以及目标分页的结束行对应的目标数据表作为结束行数据表,使得目标分页的起始行号落在起始行数据表包含的命中记录的行号范围内,目标分页的结束行号落在结束行数据表包含的命中记录的行号范围内;
判断所述起始行数据表与所述结束行数据表是否为同一张数据表;若是,则该数据表为目标分页的分页记录对应的数据表;
若否,则按数据库编号以及数据表编号的顺序,找出目标数据表中从所述起始行数据表到所述结束行数据表的目标数据表,作为目标分页的分页记录对应的数据表。
12.根据权利要求8所述的装置,其特征在于,所述获取单元包括:
获取子单元,用于从所述对应的数据表中获取命中记录;
存放子单元,用于将所述命中记录与对应的行号关联地存放在内存中;
提取子单元,用于按照目标分页的起始行号以及结束行号从内存中取出行号对应的命中记录,作为所述目标分页的分页记录。
13.一种设备,其特征在于,包括:
处理器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为:
响应于接收到分页查询的请求,分别对每个待查询数据库中的每张数据表进行查询统计,其中,所述请求包括查询条件及每个分页容纳的记录条数;
确定目标分页的分页号;
基于所述目标分页的分页号以及每个分页容纳的记录条数,确定所述目标分页的起始行号以及结束行号;
根据所述查询统计的结果以及所述目标分页的起始行号和结束行号,确定所述目标分页的分页记录对应的数据表;
从所述对应的数据表中获取所述目标分页的分页记录;并且
返回所述目标分页的分页记录。
CN201610143970.6A 2016-03-14 2016-03-14 用于分页查询的方法、装置及设备 Pending CN107193822A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610143970.6A CN107193822A (zh) 2016-03-14 2016-03-14 用于分页查询的方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610143970.6A CN107193822A (zh) 2016-03-14 2016-03-14 用于分页查询的方法、装置及设备

Publications (1)

Publication Number Publication Date
CN107193822A true CN107193822A (zh) 2017-09-22

Family

ID=59870678

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610143970.6A Pending CN107193822A (zh) 2016-03-14 2016-03-14 用于分页查询的方法、装置及设备

Country Status (1)

Country Link
CN (1) CN107193822A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241050A (zh) * 2018-07-10 2019-01-18 阿里巴巴集团控股有限公司 一种数据查询方法、装置及系统、电子设备
CN109543027A (zh) * 2018-11-23 2019-03-29 苏州好玩友网络科技有限公司 分页数据的获取方法及装置、设备及存储介质
CN110569255A (zh) * 2019-08-16 2019-12-13 苏宁云计算有限公司 数据库分库分表的分页查询方法、装置和计算机设备
CN110928900A (zh) * 2018-09-17 2020-03-27 马上消费金融股份有限公司 多表数据的查询方法、装置、终端以及计算机存储介质
CN110955680A (zh) * 2019-10-10 2020-04-03 珠海格力电器股份有限公司 一种基于HBase的数据分页查询方法
CN111506600A (zh) * 2020-03-23 2020-08-07 杭州海康威视系统技术有限公司 分页查询方法、装置和电子设备
CN112527824A (zh) * 2019-09-17 2021-03-19 浙江宇视科技有限公司 分页查询方法、装置、电子设备和计算机可读存储介质
CN113590657A (zh) * 2021-08-09 2021-11-02 咪咕文化科技有限公司 基于数据库分片的数据查询方法、装置和服务器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120096040A1 (en) * 2009-05-07 2012-04-19 Sap Ag Method and system for managing large write-once tables in shadow page databases
CN102880685A (zh) * 2012-09-13 2013-01-16 北京航空航天大学 一种时间密集大数据量的b/s分区间分页查询方法
CN103530378A (zh) * 2013-10-15 2014-01-22 福建榕基软件股份有限公司 数据分页查询与数据库的构建的方法与装置
CN103886022A (zh) * 2014-02-24 2014-06-25 上海上讯信息技术股份有限公司 一种基于主键字段进行分页查询的查询设备及其方法
CN104123340A (zh) * 2014-06-25 2014-10-29 世纪禾光科技发展(北京)有限公司 一种数据库分表分页查询方法及系统
CN104298788A (zh) * 2014-11-13 2015-01-21 中国建设银行股份有限公司 一种分页查询方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120096040A1 (en) * 2009-05-07 2012-04-19 Sap Ag Method and system for managing large write-once tables in shadow page databases
CN102880685A (zh) * 2012-09-13 2013-01-16 北京航空航天大学 一种时间密集大数据量的b/s分区间分页查询方法
CN103530378A (zh) * 2013-10-15 2014-01-22 福建榕基软件股份有限公司 数据分页查询与数据库的构建的方法与装置
CN103886022A (zh) * 2014-02-24 2014-06-25 上海上讯信息技术股份有限公司 一种基于主键字段进行分页查询的查询设备及其方法
CN104123340A (zh) * 2014-06-25 2014-10-29 世纪禾光科技发展(北京)有限公司 一种数据库分表分页查询方法及系统
CN104298788A (zh) * 2014-11-13 2015-01-21 中国建设银行股份有限公司 一种分页查询方法和系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241050A (zh) * 2018-07-10 2019-01-18 阿里巴巴集团控股有限公司 一种数据查询方法、装置及系统、电子设备
CN110928900A (zh) * 2018-09-17 2020-03-27 马上消费金融股份有限公司 多表数据的查询方法、装置、终端以及计算机存储介质
CN110928900B (zh) * 2018-09-17 2021-02-19 马上消费金融股份有限公司 多表数据的查询方法、装置、终端以及计算机存储介质
CN109543027A (zh) * 2018-11-23 2019-03-29 苏州好玩友网络科技有限公司 分页数据的获取方法及装置、设备及存储介质
CN110569255A (zh) * 2019-08-16 2019-12-13 苏宁云计算有限公司 数据库分库分表的分页查询方法、装置和计算机设备
WO2021031687A1 (zh) * 2019-08-16 2021-02-25 苏宁云计算有限公司 数据库分库分表的分页查询方法、装置和计算机设备
CN112527824A (zh) * 2019-09-17 2021-03-19 浙江宇视科技有限公司 分页查询方法、装置、电子设备和计算机可读存储介质
CN110955680A (zh) * 2019-10-10 2020-04-03 珠海格力电器股份有限公司 一种基于HBase的数据分页查询方法
CN111506600A (zh) * 2020-03-23 2020-08-07 杭州海康威视系统技术有限公司 分页查询方法、装置和电子设备
CN111506600B (zh) * 2020-03-23 2023-06-16 杭州海康威视系统技术有限公司 分页查询方法、装置和电子设备
CN113590657A (zh) * 2021-08-09 2021-11-02 咪咕文化科技有限公司 基于数据库分片的数据查询方法、装置和服务器
CN113590657B (zh) * 2021-08-09 2024-07-16 咪咕文化科技有限公司 基于数据库分片的数据查询方法、装置和服务器

Similar Documents

Publication Publication Date Title
CN107193822A (zh) 用于分页查询的方法、装置及设备
CN110113200A (zh) 链路系统与日志系统的关联方法、装置及存储介质
US7702959B2 (en) Error management system and method of using the same
US8898283B2 (en) Recommendation of network object information to user
CN110851465B (zh) 数据查询方法及系统
US9305104B2 (en) Systems and methods for behavioral pattern mining
CN112800095B (zh) 一种数据处理方法、装置、设备及存储介质
CN106933871A (zh) 短链接处理方法、装置及短链接服务器
CN103368992A (zh) 一种信息推送方法及装置
CN110837511B (zh) 一种数据处理方法、系统及相关设备
CN107784070A (zh) 一种提高数据清洗效率的方法、装置及设备
CN107483381A (zh) 关联账户的监控方法及装置
CN106354622B (zh) 测试网页的展示方法和装置
CN111460011A (zh) 页面数据展示方法、装置、服务器及存储介质
CN108268357A (zh) 实时数据处理方法和装置
CN110457312A (zh) 多类型数据的采集方法、装置、设备及可读存储介质
CN108154024A (zh) 一种数据检索方法、装置及电子设备
CN103839178A (zh) 一种获得商品质量信息的方法及系统
CN111045983A (zh) 核电站电子文件管理方法、装置、终端设备及介质
CN110008243A (zh) 一种数据表处理方法及装置
CN106156087A (zh) 数据处理方法及装置
CN111400510B (zh) 数据归档处理方法、装置、设备以及可读存储介质
CN110020166A (zh) 一种数据分析方法及相关设备
CN112532406B (zh) 对照实验的数据处理方法、装置、计算机设备及存储介质
CN100437493C (zh) 数据处理系统和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170922

RJ01 Rejection of invention patent application after publication