CN105653537B - 一种数据库应用系统的分页查询方法和装置 - Google Patents

一种数据库应用系统的分页查询方法和装置 Download PDF

Info

Publication number
CN105653537B
CN105653537B CN201410641801.6A CN201410641801A CN105653537B CN 105653537 B CN105653537 B CN 105653537B CN 201410641801 A CN201410641801 A CN 201410641801A CN 105653537 B CN105653537 B CN 105653537B
Authority
CN
China
Prior art keywords
data
paging
paging query
query
identifier
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.)
Active
Application number
CN201410641801.6A
Other languages
English (en)
Other versions
CN105653537A (zh
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co 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 CN201410641801.6A priority Critical patent/CN105653537B/zh
Publication of CN105653537A publication Critical patent/CN105653537A/zh
Application granted granted Critical
Publication of CN105653537B publication Critical patent/CN105653537B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种数据库应用系统的分页查询方法和装置,所述数据库应用系统中包括一个或多个数据分表;所述的方法包括:接收分页查询请求;所述分页查询请求中包括分页查询条件,分页标识和分页查询条数S;从所述一个或多个数据分表中,分别提取出满足所述分页查询条件的第一相关数据;分别判断所述一个或多个数据分表是否存在对应的分页查询辅助数据;若所述一个或多个数据分表存在对应的分页查询辅助数据,则采用所述分页查询辅助数据,分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据。本申请实施例用以节省在分页查询时所需的查询时间。

Description

一种数据库应用系统的分页查询方法和装置
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据库应用系统的分页查询方法和一种数据库应用系统的分页查询装置。
背景技术
随着时间和业务的发展,数据库应用系统中数据表会越来越多,数据表中的数据也会越来越多,为了解决数据库应用系统容量有限问题,通常将数据库应用系统中的数据采用分库分表的方式来进行存储。在数据库应用系统中查询数据时,经常采用分页查询的方式来进行查询,但是在分库分表的情形下,当进行分页查询时,需要查询出数据库应用系统每个数据分表中,符合分页查询条件的全部数据,然后对全部数据进行合并和排序,最后提取出指定的分页码所对应的数据,由于在数据分表中满足分页查询条件数据量往往非常大,因此需要较长的查询时间作为代价。
参照图1所示的一种数据库应用系统对于分库分表中的数据进行分页查询的示意图,分页查询具体可以分为以下几个步骤:
1、接收分页查询请求;所述分页查询请求包括分页查询条件。
2、从每个数据分表中查询满足分页查询条件的全部数据。假定数据分表个数为M,每个数据分表中满足分页查询条件的数据为N,那么数据应用系统则需要获取的数据集合为M*N。
3、假定指定的分页码为K,分页查询条数为S,则截取排序好的M*N数据集合中下标(K-1)*S到K*S-1的数据,并将其返回数据库应用系统的客户端。假定在数据库应用系统中包括数据分表1、数据分表2和数据分表3,在数据分表1满足分页查询条件的数据集合为[1,2,3,4],在数据分表2满足分页查询条件的数据集合为[2,3,4,5],在数据分表3满足分页查询条件的数据集合为[3,4,5,6],全部合并后获得的数据集合M*N为[1,2,3,4,2,3,4,5,3,4,5,6]。若当前用户想要查看指定的分页码key=2,分页查询条数S=2,则需要返回数据集合M*N中数据则为下标从2~3的数据,则为[3,4]。
从上述分页查询步骤可以看出,每次分页查询都需要从数据分表中查询出满足分页查询条件的全部M*N条数据,然后截取出指定的分页码K所对应的数据,数据分表中的总数据量通常是海量的,需要花费大量的时间查询,因此查询效率非常低。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提出一种数据库应用系统的分页查询机制,用以节省在分页查询时所需的查询时间。
申请内容
本申请实施例所要解决的技术问题是提供一种数据库应用系统的分页查询方法,用以节省在分页查询时所需的查询时间。
相应的,本申请实施例还提供了一种数据库应用系统的分页查询装置,用以保证上述方法的实现及应用。
为了解决上述问题,本申请公开了一种数据库应用系统的分页查询方法,所述数据库应用系统中包括一个或多个数据分表;所述的方法包括:
接收分页查询请求;所述分页查询请求中包括分页查询条件,分页标识和分页查询条数S;
从所述一个或多个数据分表中,分别提取出满足所述分页查询条件的第一相关数据;
分别判断所述一个或多个数据分表是否存在对应的分页查询辅助数据;
若所述一个或多个数据分表存在对应的分页查询辅助数据,则采用所述分页查询辅助数据,分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据。
优选地,在所述分别判断所述一个或多个数据分表是否存在对应的分页查询辅助数据的步骤之后,还包括:
若所述一个或多个数据分表不存在对应的分页查询辅助数据,则采用所述分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据。
优选地,在所述从一个或多个数据分表中,分别提取出满足所述分页查询条件的第一相关数据的步骤之后,还包括:
将所述第一相关数据按照指定字段进行排序;
为所述排序后的所述第一相关数据按序添加数据记录排序标识。
优选地,所述分页查询辅助数据包括数据分表标识,以及,相应数据分表中的数据目标索引;所述采用分页查询辅助数据,分页查询条数S和分页标识从所述第一相关数据筛选出作为分页查询结果的第二相关数据的步骤包括:
在所述数据分表标识对应的数据分表中,查找到与所述数据目标索引一致的数据记录排序标识;
在所述第一相关数据中从所述数据记录排序标识之后,按序读取满足所述分页查询条数S的前S条第一相关数据,所述S为正整数;
从所述满足所述分页查询条数S的前S条第一相关数据中,采用所述分页查询条数S提取出作为分页查询结果的第二相关数据。
优选地,所述采用分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据的步骤包括:
采用所述分页标识与分页查询条数S计算数据读取索引;
查找到与所述数据读取索引一致的数据记录排序标识;
在所述第一相关数据中从所述数据记录排序标识之后,按序读取满足所述分页查询条数S的前S条第一相关数据;
从所述满足所述分页查询条数S的前S条第一相关数据中,采用所述分页查询条数S提取出作为分页查询结果的第二相关数据。
优选地,所述从满足所述分页查询条数S的前S条第一相关数据中,采用所述分页查询条数S提取出作为分页查询结果的第二相关数据的步骤包括:
将所述满足所述分页查询条数S的前S条第一相关数据合并为数据集合;
将所述数据集合按照指定字段进行排序;
从所述排序后的数据集合中提取出前分页查询条数S的数据作为分页查询结果的第二相关数据。
优选地,在所述采用分页查询辅助数据,分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据的步骤之后,还包括:
获取所述第二相关数据在一个或多个数据分表中最后的数据记录排序标识;
采用所述最后的数据记录排序标识,以及所述一个或多个数据分表对应的数据分表标识生成分页查询辅助数据。
优选地,所述的方法还包括:
采用所述分页查询辅助数据生成分页查询请求,并返回所述接收分页查询请求的步骤。
本申请实施例还公开了一种数据库应用系统的分页查询装置,所述数据库应用系统中包括一个或多个数据分表;所述的装置包括:
接收模块,用于接收分页查询请求;所述分页查询请求中包括分页查询条件,分页查询条数S和分页标识;
第一提取模块,用于从所述一个或多个数据分表中,分别提取出满足所述分页查询条件的第一相关数据;
判断模块,用于分别判断所述一个或多个数据分表是否存在对应的分页查询辅助数据;
第二提取模块,用于在所述一个或多个数据分表存在对应的分页查询辅助数据时,采用所述分页查询辅助数据,分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据。
优选地,所述的装置还包括:
第三提取模块,用于在所述一个或多个数据分表不存在对应的分页查询辅助数据时,采用所述分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据。
优选地,所述的装置还包括:
排序模块,用于将所述第一相关数据按照指定字段进行排序;
添加模块,用于为所述排序后的所述第一相关数据按序添加数据记录排序标识。
优选地,所述分页查询辅助数据包括数据分表标识,以及,相应数据分表中的数据目标索引;所述第二提取模块包括:
第一标识查找子模块,用于在所述数据分表存在对应的分页查询辅助数据时,在所述数据分表标识对应的数据分表中,查找到与所述数据目标索引一致的数据记录排序标识;
第一数据读取子模块,用于在所述第一相关数据中从所述数据记录排序标识之后,按序读取满足预设的分页查询条数S的前S条第一相关数据,所述S为正整数;
结果提取子模块,用于从所述满足所述分页查询条数S的前S条第一相关数据中,采用所述分页查询条数S提取出作为分页查询结果的第二相关数据。
优选地,所述第三读取模块包括:
计算子模块,用于采用所述分页标识与分页查询条数S计算数据读取索引;
第二标识查找子模块,用于查找到与所述数据读取索引一致的数据记录排序标识;
第二数据读取子模块,用于在所述第一相关数据中从所述数据记录排序标识之后,按序读取满足所述分页查询条数S的前S条第一相关数据;
结果提取子模块,用于从所述满足所述分页查询条数S的前S条第一相关数据中,采用所述分页查询条数S提取出作为分页查询结果的第二相关数据。
优选地,所述结果提取子模块包括:
相关数据合并单元,用于将所述满足所述分页查询条数S的前S条第一相关数据合并为数据集合;
字段排序单元,用于将所述数据集合按照指定字段进行排序;
相关数据提取单元,用于从所述排序后的数据集合中提取出前分页查询条数S的数据作为分页查询结果的第二相关数据。
优选地,所述的装置还包括:
获取模块,用于获取所述第二相关数据在一个或多个数据分表中最后的数据记录排序标识;
生成模块,用于采用所述最后的数据记录排序标识,以及所述一个或多个数据分表对应的数据分表标识生成分页查询辅助数据。
优选地,所述的装置还包括:
返回模块,用于采用所述分页查询辅助数据生成分页查询请求,并返回所述接收模块。
与现有技术相比,本申请实施例包括以下优点:
在本申请实施例中,在分库分表的情形下进行分页查询时,根据分页查询请求中的分页查询条件筛选出相关数据,并且根据分页查询辅助数据确定已经在前一次分页查询的查询结果数据,则在相关数据中,跳过已经被查询过的分页查询结果所对应的数据,缩小所需查询数据的范围,节省在分页查询时所需的查询时间。
附图说明
图1是一种数据库应用系统对于分库分表中的数据进行分页查询的示意图;
图2是本申请的一种数据库应用系统的分页查询方法实施例1的步骤流程图;
图3是本申请的一种数据库应用系统的分页查询方法实施例2的步骤流程图;
图4是本申请的一种数据库应用系统分页查询的流程示意图;
图5是本申请的一种数据库应用系统的分页查询装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图2,示出了本申请的一种数据库应用系统的分页查询方法实施例1的步骤流程图,所述数据库应用系统中可以包括一个或多个数据分表;具体可以包括如下步骤:
步骤101,接收分页查询请求;所述分页查询请求中包括分页查询条件,分页标识和分页查询条数S;
在具体实现中,在服务器侧的数据库应用系统中进行数据查询时,如果数据分表的数据量过大,可能会导致各种各样的问题发生。例如,服务器资源被耗尽,数据量过大导致处理超时等等,都可能最终导致查询数据失败。
目前分库分表的情形下,在数据库应用系统进行数据查询时,经常采用分页查询的方式,即不是一次性查询出所有数据分表中满足分页查询条件的所有的数据,而是每次进行数据查询时,可只查询其中一页或者多页的数据,一页所包含的数据量为是固定的,例如一页的数据量可以固定为2条数据。
步骤102,从所述一个或多个数据分表中,分别提取出满足所述分页查询条件的第一相关数据;
步骤103,分别判断所述一个或多个数据分表是否存在对应的分页查询辅助数据;若所述一个或多个数据分表存在对应的分页查询辅助数据,在执行步骤104;
步骤104,采用所述分页查询辅助数据,分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据;
在本申请具体应用的一种示例中,在进行分页查询时,在数据库应用系统接收到客户端发送的分页查询请求,在分页查询请求中包括有分页查询对象。分页查询对象包括分页查询条件,例如指定某个时间范围的数据,分页标识,例如指定第2页的数据。
此外,在分页查询请求还可以包括分页查询辅助数据,当数据库应用系统在数据分表中查找满足条件的数据时,可以根据分页查询辅助数据确定在前一次分页查询中已经查找过的数据的位置,并从该位置开始查询,那么就可以不用重复查询,可以有效减少服务器资源的耗费。
需要说明的是,所述分页查询请求中的可以是分页查询条件,分页标识,以及,一个或多个数据分表分别对应的分页查询辅助数据,可以是用户手动输入,或者是在服务器侧预先设置,本申请实施例对此不加以限制。
在本申请具体应用的一种示例中,当根据分页辅助数据从满足查询条件的第一相关数据中,提取出满足分页查询条数S的前S条第一相关数据时,根据分页查询条数S,例如若分页查询条数S=2,则从该前S条第一相关数据提取出前2条的数据。
在本申请实施例中,进行分页查询时,根据分页查询条件从数据分表中提取出第一相关数据,再根据分页辅助数据在第一相关数据中确定已经在前一次分页查询中已经查询过的数据,那么就无需在数据库应用系统中查询查询所有满足查询条件的第一相关数据,跳过前一次分页查询中已经查询过的数据,可以减少服务器进行分页查询时的通信压力。
参照图3,示出了本申请的一种数据库应用系统的分页查询方法实施例2的步骤流程图,所述数据库应用系统中可以包括一个或多个数据分表;具体可以包括如下步骤:
步骤201,接收分页查询请求;所述分页查询请求中包括分页查询条件,分页标识和分页查询条数S;
步骤202,从所述一个或多个数据分表中,分别提取出满足所述分页查询条件的第一相关数据;
在本申请的一种优选实施例中,在所述步骤202之后,还可以包括如下步骤:
将所述第一相关数据按照指定字段进行排序;
为所述排序后的所述第一相关数据按序添加数据记录排序标识。
在具体实现中,数据记录排序标识,是数据分表中的数据记录进行排序后的自增的数值。比如,第一相关数据按照升序进行排序后,根据排序后的第一相关数据,按序添加诸如1,2,3,4……。当然,也可以采用罗马数字或者英文字母等作为数据记录排序标识,本申请实施例对此不加以限制。
在数据范围固定、排序方式固定的情况下,数据记录排序标识也是固定的。数据范围固定是指进行数据查询时的查询的结果数据集合是确定的,即同一个查询条件在任何时刻查询的数据集合都是固定的。例如,按照数据创建时间纬度查询,去查询数据分表中查询创建时间在昨天的数据,那么这个查询的结果数据集合是数据范围确定的。排序方式固定则是指按照指定的字段进行排序,比如按照查询创建时间。
步骤203,分别判断所述一个或多个数据分表是否存在对应的分页查询辅助数据;
步骤204,采用所述分页查询辅助数据,分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据;
在本申请的一种优选实施例中,所述分页查询辅助数据可以包括数据分表标识,以及,相应数据分表中的数据目标索引;所述步骤204可以包括如下子步骤:
子步骤S11,在所述数据分表标识对应的数据分表中,查找到与所述数据目标索引一致的数据记录排序标识;
子步骤S12,在所述第一相关数据中从所述数据记录排序标识之后,按序读取满足所述分页查询条数S的前S条第一相关数据作为第二相关数据,所述S为正整数;
子步骤S13,从所述满足所述分页查询条数S的前S条第一相关数据中,采用所述分页查询条数S提取出作为分页查询结果的第二相关数据。
在本申请的另一种优选实施例中,在所述步骤203之后,还可以包括如下步骤:
步骤S21,若所述一个或多个数据分表不存在对应的分页查询辅助数据,采用所述分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据。
所述步骤S21可以包括如下子步骤:
子步骤S21-1,若所述数据分表不存在对应的分页查询辅助数据,则采用所述分页标识与分页查询条数S计算数据读取索引;
子步骤S21-2,查找到与所述数据读取索引一致的数据记录排序标识;
子步骤S21-3,在所述第一相关数据中从所述数据记录排序标识之后,按序读取满足所述分页查询条数S的前S条第一相关数据作为第二相关数据。
在具体实现中,分页查询请求中的分页查询对象包含两部分:
A:分页查询条件。
B:分页查询辅助数据。
在本申请具体应用的一种示例中,分页查询辅助数据的结构如下所示:
Figure GDA0002171941520000101
其中,分表查询索引标识是指相应数据分表中的数据目标索引。进行分页查询时,将排序后的第一相关数据,可根据分表查询索引标识,查找到相应的数据记录排序标识,然后从该数据记录排序标识之后第一相关数据选取第二相关数据。例如,可以选取满足分页查询条数S的前S条数据作为第二相关数据。
在本申请的具体应用的一种示例中,假定在数据分表1满足分页查询条件的第一相关数据为[1,2,3,4],在数据分表2满足分页查询条件的第一相关数据为[2,3,4,5],在数据分表3满足分页查询条件的第一相关数据为[3,4,5,6],数据分表1,分表查询索引标识为2;数据分表2,分表查询索引标识为0,数据分表3,分表查询索引标识为0。
进行分页查询时,取数据分表1中的分页码为1的第二相关数据为[3,4],数据分表2取得的第二相关数据为[2,3],数据分表3取的第二相关数据为[3,4]。
应用本申请实施例,利用分页查询辅助数据无需从数据分表中获取满足分页查询条件的全部数据。首先根据数据分表标识查找到对应的数据分表,再根据分表查询索引标识确定已经在前一次的分页查询中被查询过的数据,可以减少数据库应用系统进行分页查询时所需的网络通信压力,同时提供查询效率。
在本申请的一种优选实施例中,所述子步骤S13可以包括如下子步骤:
子步骤S13-1,将所述满足所述分页查询条数S的前S条第一相关数据合并为数据集合;
子步骤S13-2,将所述数据集合按照指定字段进行排序;
子步骤S13-3,从所述排序后的数据集合中提取出前分页查询条数S的数据作为分页查询结果的第二相关数据。
在申请实施例中,排序后的数据集合可以按照升序进行排序,根据分页标识以及分页查询条数S可以计算出所需要读取数据的位置索引,根据位置索引可以查找到所对应的顺序标识查找到相应位置的前分页查询条数S的数据,作为分页查询结果的第二相关数据。
应用本申请实施例,对数据分表的数据进行升序排序,假定在数据分表1的满足所述分页查询条数S的前S条第一相关数据为[1,2,3,4,5],在数据分表2的满足所述分页查询条数S的前S条第一相关数据为[2,3,4,5,6,7],在数据分表3的满足所述分页查询条数S的前S条第一相关数据为[3,4,5,6,7],若分页查询条数S=2,指定分页码=2,则确定需要从数据分表中分别提取在第2页的2条数据,则在数据分表1中获取的作为第二相关数据的分页查询结果为[3,4],在数据分表2中获取的作为第二相关数据的分页查询结果为[4,5],在数据分表3中获取的作为第二相关数据的分页查询结果为[5,6]。
步骤205,获取所述第二相关数据在一个或多个数据分表中最后的数据记录排序标识;
步骤206,采用所述最后的数据记录排序标识,以及所述一个或多个数据分表对应的数据分表标识生成分页查询辅助数据;
步骤207,采用所述分页查询辅助数据生成分页查询请求,并返回所述步骤201。
在本申请实施例中,将分页查询结果返回给数据库应用系统后,如果要进行下一次的分页查询,则可以携带原有分页查询条件和分页查询辅助数据。
在具体实现中,可以返回给数据库应用系统的数据包含两个部分:
1、分页查询结果;
2、分页查询辅助数据。
在进行下一次的分页查询时,可以根据分页查询辅助数据跳过前一次分页查询已经查询过的数据(即分页查询结果),直接开始查询未查询过的数据分表中的数据,可以大大提高数据分表查询的效率和系统性能。
在本申请具体应用的一种示例中,假定在数据库应用系统中包括数据分表1、数据分表2和数据分表3,在数据分表1满足分页查询条件的数据集合为[1,2,3,4],在数据分表2满足分页查询条件的数据集合为[2,3,4,5],在数据分表3满足分页查询条件的数据集合为[3,4,5,6],指定的分页码key=2,分页查询条数S=2。按照升序排列,按照优化后的分页查询过程为:
在第一次的分页查询中:取数据分表1中的分页码为1的数据,则为[1,2],数据分表2取得的数据为[2,3],数据分表3取的数据为[3,4]。将这数据进行合并得到[1,2,2,3,3,4],升序排序后得到[1,2,2,3,3,4]。根据分页查询条数从中截取2条数据作为分页查询结果[1,2]。这时的辅助查询结果对象则为:数据分表1,分表查询索引标识为2;数据分表2,分表查询索引标识为0,数据分表3,分表查询索引标识为0。
在第二次的分页查询中:数据分表1则取数据记录排序标识大于分表查询索引标识2的2条数据,为[3,4];数据分表2则取分页排序号值大于0的2条数据,为[2,3];数据分表3则去分页排序号值对于0的2条数据,为[3,4].将则三个集合合并得到[3,4,2,3,3,4],按照升序排序后得到[2,3,3,3,4,4]。截取2条则返回的查询结果为[2,3]。辅助查询结果对象为:数据分表1,分表查询索引标识为2;数据分表2,分表查询索引标识为2;数据分表3,分表查询索引标识为0。
在第三次的分页查询和其他后面进行的分页查询类似,故不再赘述了。
为使本领域技术人员更好地理解本申请实施例,以下采用一个分页查询的示例进行说明。
参照图4所示的本申请的一种数据库应用系统分页查询的流程示意图,具体可以包括如下步骤:
1、接收分页查询请求,并根据分页查询请求设置原始的分页查询条件,比如所需要查询数据的条件区间。分页查询请求中还可以包括预先设置或者由用户手动输入的分页查询条数S;如数据库应用系统中有分页查询辅助数据则进行设置。
2、数据库应用系统的服务器解析分页查询请求对象,所述分页查询请求对象包括原始的分页查询条件和分页查询辅助数据。所述分页查询辅助数据可以包括数据分表标识对应的分表查询索引号(分表查询标识);其中数据分表标识用于识别对应的数据分表;
a)如果分页查询辅助对象为空,则数据分表标识和对应的分表查询索引号可以设置为0,否则设置为用户输入的值。
b)在原始的分页查询条件中增加“数据记录排序标识>分表查询索引号”。
3、根据分页查询条件从每个数据分表中捞取满足条件的数据,假定数据分表个数为M,分页查询条数为S,那么数据库应用系统需要获取的数据集合为M*S。
4、将M*S的数据集合进行合并、排序。
a)在原始的排序字段增加一个数据记录排序标识,原始排序条件不变,数据记录排序标识可按照升序排列。
b)对M*S的数据集合按照指定字段进行排序。
5、构造分页查询结果对象。
a)截取排序后的M*S的数据集合的前S条作为查询结果的数据。
b)提取出查询结果的数据中每个数据分表最大的数据记录排序标识作为下一次的分表查询索引号。
6、分页查询结果返回给数据库应用系统。
7、数据库应用系统在下一个分页查询中,可以携带原始的分页查询条件,以及,根据分表查询索引号和所对应的数据分表标识构建的新的分页查询辅助数据的分页查询辅助对象。
在本示例中,每次分页查询只需要从数据库中查询出M*S条数据,然后按照指定字段进行排序,再根据分页标识从中截取出相应的S条数据,不需要获取满足查询条件的全部数据。
在数据库应用系统的每个数据分表筛选数据时,如果该数据分表存在对应的分页查询辅助数据,则利用分页查询辅助数据跳过已经在前一次分页查询中已经查询过的分页查询结果的数据。除此之外,还可以根据本次分页查询结果更新分页查询结果的数据,那么在下一个分页查询中,可以利用更新后的分页查询辅助数据,跳过本次分页查询中已经查询过的分页查询结果的数据,可以大大提高数据查询的效率和系统性能。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图5,示出了本申请一种数据库应用系统的分页查询装置实施例的结构框图,所述数据库应用系统中可以包括一个或多个数据分表;具体可以包括如下模块:
接收模块301,用于接收分页查询请求;所述分页查询请求中包括分页查询条件,分页标识和分页查询条数S;
第一提取模块302,用于从所述一个或多个数据分表中,分别提取出满足所述分页查询条件的第一相关数据;
在本申请的一种优选实施例中,所述装置还可以包括如下模块:
排序模块,用于将所述第一相关数据按照指定字段进行排序;
添加模块,用于为所述排序后的所述第一相关数据按序添加数据记录排序标识。
判断模块303,用于分别判断所述一个或多个数据分表是否存在对应的分页查询辅助数据;
第二提取模块304,用于采用所述分页查询辅助数据,分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据;
在本申请的一种优选实施例中,所述装置还可以包括如下模块:
第三提取模块,用于在所述一个或多个数据分表不存在对应的分页查询辅助数据时,采用所述分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据。
在本申请的一种优选实施例中,所述分页查询辅助数据可以包括数据分表标识,以及,相应数据分表中的数据目标索引;所述第二提取模块303可以包括如下子模块:
第一标识查找子模块,用于在所述数据分表存在对应的分页查询辅助数据时,在所述数据分表标识对应的数据分表中,查找到与所述数据目标索引一致的数据记录排序标识;
第二数据读取子模块,用于在所述第一相关数据中从所述数据记录排序标识之后,按序读取满足预设的分页查询条数S的前S条第一相关数据作为第二相关数据,所述S为正整数;
结果提取子模块,用于从所述满足所述分页查询条数S的前S条第一相关数据中,采用所述分页查询条数S提取出作为分页查询结果的第二相关数据。
在本申请的一种优选实施例中,所述第三读取模块可以包括如下子模块:
计算子模块,用于采用所述分页标识与分页查询条数S计算数据读取索引;
第二标识查找子模块,用于查找到与所述数据读取索引一致的数据记录排序标识;
第二数据读取子模块,用于在所述第一相关数据中从所述数据记录排序标识之后,按序读取满足所述分页查询条数S的前S条第一相关数据;
结果提取子模块,用于从所述满足所述分页查询条数S的前S条第一相关数据中,采用所述分页查询条数S提取出作为分页查询结果的第二相关数据。
在本申请的一种优选实施例中,所述结果提取子模块可以包括如下子模块:
相关数据合并单元,用于将所述第二相关数据合并为数据集合;
字段排序单元,用于将所述数据集合按照指定字段进行排序;
相关数据提取单元,用于从所述排序后的数据集合中提取出前分页查询条数S的数据作为分页查询结果的第二相关数据。
在本申请的一种优选实施例中,所述装置还可以包括如下模块:
获取模块,用于获取所述第二相关数据在一个或多个数据分表中最后的数据记录排序标识;
生成模块,用于采用所述最后的数据记录排序标识,以及所述一个或多个数据分表对应的数据分表标识生成分页查询辅助数据
在本申请的一种优选实施例中,所述装置还可以包括如下模块:
返回模块,用于采用所述分页查询辅助数据生成分页查询请求,并返回所述接收模块。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种数据库应用系统的分页查询方法和一种数据库应用系统的分页查询装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (16)

1.一种数据库应用系统的分页查询方法,其特征在于,所述数据库应用系统中包括一个或多个数据分表;所述的方法包括:
接收分页查询请求;所述分页查询请求中包括分页查询条件,分页标识和分页查询条数S;
从所述一个或多个数据分表中,分别提取出满足所述分页查询条件的第一相关数据;
分别判断所述一个或多个数据分表是否存在对应的分页查询辅助数据;所述分页查询辅助数据用于在第一相关数据中确定已经在前一次分页查询中已经查询过的数据;
若所述一个或多个数据分表存在对应的分页查询辅助数据,则采用所述分页查询辅助数据,分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据。
2.根据权利要求1所述的方法,其特征在于,在所述分别判断所述一个或多个数据分表是否存在对应的分页查询辅助数据的步骤之后,还包括:
若所述一个或多个数据分表不存在对应的分页查询辅助数据,则采用所述分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据。
3.根据权利要求1或2所述的方法,其特征在于,在所述从一个或多个数据分表中,分别提取出满足所述分页查询条件的第一相关数据的步骤之后,还包括:
将所述第一相关数据按照指定字段进行排序;
为所述排序后的所述第一相关数据按序添加数据记录排序标识。
4.根据权利要求2所述的方法,其特征在于,所述分页查询辅助数据包括数据分表标识,以及,相应数据分表中的数据目标索引;所述采用分页查询辅助数据,分页查询条数S和分页标识从所述第一相关数据筛选出作为分页查询结果的第二相关数据的步骤包括:
在所述数据分表标识对应的数据分表中,查找到与所述数据目标索引一致的数据记录排序标识;
在所述第一相关数据中从所述数据记录排序标识之后,按序读取满足所述分页查询条数S的前S条第一相关数据,所述S为正整数;
从所述满足所述分页查询条数S的前S条第一相关数据中,采用所述分页查询条数S提取出作为分页查询结果的第二相关数据。
5.根据权利要求3所述的方法,其特征在于,所述采用分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据的步骤包括:
采用所述分页标识与分页查询条数S计算数据读取索引;
查找到与所述数据读取索引一致的数据记录排序标识;
在所述第一相关数据中从所述数据记录排序标识之后,按序读取满足所述分页查询条数S的前S条第一相关数据;
从所述满足所述分页查询条数S的前S条第一相关数据中,采用所述分页查询条数S提取出作为分页查询结果的第二相关数据。
6.根据权利要求4或5所述的方法,其特征在于,所述从满足所述分页查询条数S的前S条第一相关数据中,采用所述分页查询条数S提取出作为分页查询结果的第二相关数据的步骤包括:
将所述满足所述分页查询条数S的前S条第一相关数据合并为数据集合;
将所述数据集合按照指定字段进行排序;
从所述排序后的数据集合中提取出前分页查询条数S的数据作为分页查询结果的第二相关数据。
7.根据权利要求4或5所述的方法,其特征在于,在所述采用分页查询辅助数据,分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据的步骤之后,还包括:
获取所述第二相关数据在一个或多个数据分表中最后的数据记录排序标识;
采用所述最后的数据记录排序标识,以及所述一个或多个数据分表对应的数据分表标识生成分页查询辅助数据。
8.根据权利要求7所述的方法,其特征在于,还包括:
采用所述分页查询辅助数据生成分页查询请求,并返回所述接收分页查询请求的步骤。
9.一种数据库应用系统的分页查询装置,其特征在于,所述数据库应用系统中包括一个或多个数据分表;所述的装置包括:
接收模块,用于接收分页查询请求;所述分页查询请求中包括分页查询条件,分页查询条数S和分页标识;
第一提取模块,用于从所述一个或多个数据分表中,分别提取出满足所述分页查询条件的第一相关数据;
判断模块,用于分别判断所述一个或多个数据分表是否存在对应的分页查询辅助数据;所述分页查询辅助数据用于在第一相关数据中确定已经在前一次分页查询中已经查询过的数据;
第二提取模块,用于在所述一个或多个数据分表存在对应的分页查询辅助数据时,采用所述分页查询辅助数据,分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据。
10.根据权利要求9所述的装置,其特征在于,还包括:
第三提取模块,用于在所述一个或多个数据分表不存在对应的分页查询辅助数据时,采用所述分页查询条数S和分页标识从所述第一相关数据中,筛选出作为分页查询结果的第二相关数据。
11.根据权利要求9或10所述的装置,其特征在于,还包括:
排序模块,用于将所述第一相关数据按照指定字段进行排序;
添加模块,用于为所述排序后的所述第一相关数据按序添加数据记录排序标识。
12.根据权利要求11所述的装置,其特征在于,所述分页查询辅助数据包括数据分表标识,以及,相应数据分表中的数据目标索引;所述第二提取模块包括:
第一标识查找子模块,用于在所述数据分表存在对应的分页查询辅助数据时,在所述数据分表标识对应的数据分表中,查找到与所述数据目标索引一致的数据记录排序标识;
第一数据读取子模块,用于在所述第一相关数据中从所述数据记录排序标识之后,按序读取满足预设的分页查询条数S的前S条第一相关数据,所述S为正整数;
结果提取子模块,用于从所述满足所述分页查询条数S的前S条第一相关数据中,采用所述分页查询条数S提取出作为分页查询结果的第二相关数据。
13.根据权利要求11所述的装置,其特征在于,所述装置还包括第三读取模块,所述第三读取模块包括如下子模块:
计算子模块,用于采用所述分页标识与分页查询条数S计算数据读取索引;
第二标识查找子模块,用于查找到与所述数据读取索引一致的数据记录排序标识;
第二数据读取子模块,用于在所述第一相关数据中从所述数据记录排序标识之后,按序读取满足所述分页查询条数S的前S条第一相关数据;
结果提取子模块,用于从所述满足所述分页查询条数S的前S条第一相关数据中,采用所述分页查询条数S提取出作为分页查询结果的第二相关数据。
14.根据权利要求12或13所述的装置,其特征在于,所述结果提取子模块包括:
相关数据合并单元,用于将所述满足所述分页查询条数S的前S条第一相关数据合并为数据集合;
字段排序单元,用于将所述数据集合按照指定字段进行排序;
相关数据提取单元,用于从所述排序后的数据集合中提取出前分页查询条数S的数据作为分页查询结果的第二相关数据。
15.根据权利要求12或13所述的装置,其特征在于,还包括:
获取模块,用于获取所述第二相关数据在一个或多个数据分表中最后的数据记录排序标识;
生成模块,用于采用所述最后的数据记录排序标识,以及所述一个或多个数据分表对应的数据分表标识生成分页查询辅助数据。
16.根据权利要求15所述的装置,其特征在于,还包括:
返回模块,用于采用所述分页查询辅助数据生成分页查询请求,并返回所述接收模块。
CN201410641801.6A 2014-11-13 2014-11-13 一种数据库应用系统的分页查询方法和装置 Active CN105653537B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410641801.6A CN105653537B (zh) 2014-11-13 2014-11-13 一种数据库应用系统的分页查询方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410641801.6A CN105653537B (zh) 2014-11-13 2014-11-13 一种数据库应用系统的分页查询方法和装置

Publications (2)

Publication Number Publication Date
CN105653537A CN105653537A (zh) 2016-06-08
CN105653537B true CN105653537B (zh) 2020-04-17

Family

ID=56478861

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410641801.6A Active CN105653537B (zh) 2014-11-13 2014-11-13 一种数据库应用系统的分页查询方法和装置

Country Status (1)

Country Link
CN (1) CN105653537B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649435A (zh) * 2016-09-07 2017-05-10 努比亚技术有限公司 数据查询装置及方法
CN106446080B (zh) * 2016-09-09 2021-08-13 华为技术有限公司 数据查询的方法、查询服务设备、客户端设备和数据系统
CN108073661A (zh) * 2016-11-18 2018-05-25 北京京东尚科信息技术有限公司 数据检索方法及装置、报表生成系统及方法
CN107798135B (zh) * 2017-11-22 2020-06-16 阿里巴巴集团控股有限公司 分页查询方法及装置和电子设备
CN110555034B (zh) * 2018-03-28 2021-11-09 武汉斗鱼网络科技有限公司 一种数据查询分页方法、装置、服务器及介质
CN110928900B (zh) * 2018-09-17 2021-02-19 马上消费金融股份有限公司 多表数据的查询方法、装置、终端以及计算机存储介质
CN109271597B (zh) * 2018-09-19 2022-02-18 郑州云海信息技术有限公司 一种非关系型数据库多表场景分页显示方法及其装置
CN109947827A (zh) * 2018-12-27 2019-06-28 航天信息股份有限公司 一种查询操作的响应方法和装置
CN110188124A (zh) * 2019-05-10 2019-08-30 中国银行股份有限公司 一种数据获取方法及装置
CN110618972A (zh) * 2019-08-26 2019-12-27 达疆网络科技(上海)有限公司 一种利用自增Id增进深分页方法
WO2021087679A1 (zh) * 2019-11-04 2021-05-14 深圳市欢太科技有限公司 分页数据查询方法、装置、电子设备以及存储介质
CN110928902A (zh) * 2019-11-27 2020-03-27 杭州安恒信息技术股份有限公司 针对分页获取云平台终端数据的查询方法和系统
CN113626665B (zh) * 2021-08-26 2024-04-05 北京京东乾石科技有限公司 一种数据展示的方法和装置
CN113946725B (zh) * 2021-12-20 2022-03-01 飞狐信息技术(天津)有限公司 分页查询方法及装置、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479234A (zh) * 2010-11-29 2012-05-30 深圳市金蝶中间件有限公司 数据库分页操作方法和装置
US8401574B2 (en) * 2005-08-29 2013-03-19 Motorola Mobility Llc Method and apparatus for managing delivery of information in a wireless communication network
CN103390007A (zh) * 2012-05-11 2013-11-13 阿里巴巴集团控股有限公司 数据获取方法和装置
CN103530378A (zh) * 2013-10-15 2014-01-22 福建榕基软件股份有限公司 数据分页查询与数据库的构建的方法与装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9356849B2 (en) * 2011-02-16 2016-05-31 Hewlett Packard Enterprise Development Lp Population category hierarchies
CN103886022B (zh) * 2014-02-24 2019-01-18 上海上讯信息技术股份有限公司 一种基于主键字段进行分页查询的查询设备及其方法
CN104123340B (zh) * 2014-06-25 2018-04-20 世纪禾光科技发展(北京)有限公司 一种数据库分表分页查询方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8401574B2 (en) * 2005-08-29 2013-03-19 Motorola Mobility Llc Method and apparatus for managing delivery of information in a wireless communication network
CN102479234A (zh) * 2010-11-29 2012-05-30 深圳市金蝶中间件有限公司 数据库分页操作方法和装置
CN103390007A (zh) * 2012-05-11 2013-11-13 阿里巴巴集团控股有限公司 数据获取方法和装置
CN103530378A (zh) * 2013-10-15 2014-01-22 福建榕基软件股份有限公司 数据分页查询与数据库的构建的方法与装置

Also Published As

Publication number Publication date
CN105653537A (zh) 2016-06-08

Similar Documents

Publication Publication Date Title
CN105653537B (zh) 一种数据库应用系统的分页查询方法和装置
US10216848B2 (en) Method and system for recommending cloud websites based on terminal access statistics
CN106557545B (zh) 视频检索方法和装置
CN106528787B (zh) 一种基于海量数据多维分析的查询方法及装置
US8880463B2 (en) Standardized framework for reporting archived legacy system data
CN109086456B (zh) 数据索引方法及装置
CN103984757B (zh) 在搜索结果页上插入新闻信息条目的方法和系统
EP3217296A1 (en) Data query method and apparatus
CN105760380A (zh) 数据库查询方法、装置及系统
CN108228663A (zh) 一种分页检索方法及装置
CN104537341A (zh) 人脸图片信息获取方法和装置
CN110012049B (zh) 信息推送方法. 系统. 服务器及计算机可读存储介质
CN108319608A (zh) 访问日志存储查询的方法、装置及系统
CN103186666A (zh) 基于收藏进行搜索的方法、装置与设备
CN112364014A (zh) 数据查询方法、装置、服务器及存储介质
CN114936269A (zh) 文档搜索平台、搜索方法、装置、电子设备及存储介质
CN112527824B (zh) 分页查询方法、装置、电子设备和计算机可读存储介质
CN110968723B (zh) 一种图像特征值的搜索方法、装置及电子设备
JP2013041385A (ja) 文献検索方法、文献検索装置及び文献検索プログラム
CN110555034B (zh) 一种数据查询分页方法、装置、服务器及介质
CN107590233B (zh) 一种文件管理方法及装置
CN111666278B (zh) 数据存储、检索方法、电子设备及存储介质
CN108776705B (zh) 一种文本全文精确查询的方法、装置、设备及可读介质
CN107070987B (zh) 用于分布式对象存储系统的数据获取方法及系统
CN104636384B (zh) 一种处理文档的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.