CN112416967B - 数据分页查询方法、装置、电子设备及存储介质 - Google Patents
数据分页查询方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112416967B CN112416967B CN202011460731.6A CN202011460731A CN112416967B CN 112416967 B CN112416967 B CN 112416967B CN 202011460731 A CN202011460731 A CN 202011460731A CN 112416967 B CN112416967 B CN 112416967B
- Authority
- CN
- China
- Prior art keywords
- query
- page
- next page
- query result
- condition corresponding
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000004891 communication Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 7
- 238000013500 data storage Methods 0.000 abstract description 10
- 239000012634 fragment Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
- G06F16/287—Visualization; Browsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据分页查询方法、装置、电子设备及存储介质,其中,该方法包括:根据当前页面的查询结果,获取下一页面对应的附加条件;将翻页指令和下一页面对应的附加条件发送至服务端,以使得服务端响应于翻页指令,根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果。本发明实施例提供的数据分页查询方法、装置、电子设备及存储介质,根据当前页面的查询结果,获取下一页面对应的附加条件并发送至服务端,使得服务端根据查询条件、分页参数和下一页面对应的附加条件生成查询语句并执行,获取下一页面的查询结果,能提高在海量数据存量情况下连续翻页的查询性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据分页查询方法、装置、电子设备及存储介质。
背景技术
数据分页是指在大数据量的情况下,按照用户指定的页数,经过运算查询出需要显示的数据内容,而且,每次仅仅查询部分数据,并按页显示。
对于采用MyCat等中间件的数据库(例如MySQL),在进行分页查询并将返回的数据按时间排序,现有技术通过携带了查询条件的分页查询页语句进行查询,分页查询页语句会分发到数据库的各个分片上执行。
例如,分页查询页语句为
select*from operate_log where create_time between$startTime and$endTime and operate_type=$operateType and ip=$ip and...order by create_timelimit$startOffset,$pageNum;相应地,
第1页在各个分片上执行的语句为:select*from operate_log...limit 0,$pageNum;
第2页在各个分片上执行的语句为:select*from operate_log...limit 0,$pageNum*2;
第3页在各个分片上执行的语句为:select*from operate_log...limit 0,$pageNum*3;
第n页在各个分片上执行的语句为:select*from operate_log...limit 0,$pageNum*n。
通过上述方式进行查询,由于中间件需要将每个分片上返回的结果做汇总排序,直接分页的模式下,每次limit的起始偏移都为0,而每个分片上返回的数据量越来越大,导致海量数据连续分页查询性能逐渐劣化,页数越靠后性能越劣化,最终造成分片查询超时或者内存溢出。
发明内容
本发明提供一种数据分页查询方法、装置、电子设备及存储介质,用以解决现有技术中查询性能差的缺陷,实现高性能的分页查询。
本发明提供一种数据分页查询方法,包括:
根据当前页面的查询结果,获取下一页面对应的附加条件;
将翻页指令和所述下一页面对应的附加条件发送至服务端,以使得所述服务端响应于所述翻页指令,根据查询条件、分页参数和所述下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果。
根据本发明提供的一种数据分页查询方法,所述将翻页指令和所述下一页面对应的附加条件发送至服务端之后,还包括:
接收所述服务端发送的所述下一页面的查询结果。
根据本发明提供的一种数据分页查询方法,所述根据当前页面的查询结果,获取下一页面对应的附加条件的具体步骤包括:
获取所述当前页面的查询结果中最后一行数据中的目标参数;
根据所述当前页面的查询结果中最后一行数据中的目标参数,获取所述下一页面对应的附加条件。
根据本发明提供的一种数据分页查询方法,所述目标参数包括主键和索引。
本发明还提供一种数据分页查询方法,包括:
接收终端发送的翻页指令和下一页面对应的附加条件;
响应于所述翻页指令,根据查询条件、分页参数和所述下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果;
其中,所述下一页面对应的附加条件,是所述终端根据当前页面的查询结果获取的。
根据本发明提供的一种数据分页查询方法,所述响应于所述翻页指令,根据查询条件、分页参数和所述下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果之后,还包括:
将所述下一页面的查询结果发送至所述终端。
本发明还提供一种数据分页查询装置,包括:
获取模块,用于根据当前页面的查询结果,获取下一页面对应的附加条件;
第一通信模块,用于将翻页指令和所述下一页面对应的附加条件发送至服务端,以使得所述服务端响应于所述翻页指令,根据查询条件、分页参数和所述下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果。
本发明还提供一种数据分页查询装置,包括:
第二通信模块,用于接收终端发送的翻页指令和下一页面对应的附加条件;
查询模块,用于响应于所述翻页指令,根据查询条件、分页参数和所述下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果;
其中,所述下一页面对应的附加条件,是所述终端根据当前页面的查询结果获取的。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述数据分页查询方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据分页查询方法的步骤。
本发明提供的数据分页查询方法、装置、电子设备及存储介质,根据当前页面的查询结果,获取下一页面对应的附加条件并发送至服务端,使得服务端根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果,能提高在海量数据存量情况下连续翻页的查询性能。进一步地,根据每一页面对应的附加条件,能逐步缩小查询范围,能提高分页查询的效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据分页查询方法的流程示意图;
图2是本发明提供的数据分页查询方法的流程示意图;
图3是本发明提供的数据分页查询装置的结构示意图;
图4是本发明提供的数据分页查询装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明实施例的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性,且不涉及顺序。
在本发明实施例的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明实施例中的具体含义。
为了克服现有技术的上述问题,本发明提供一种数据分页查询方法、装置、电子设备及存储介质,其发明构思是,通过优化SQL(结构化查询语言,Structured QueryLanguage)语句,查询语句中不再含有LIMIT 0,n*pageSize,使得各个分片不需要返回已经获取的数据,避免随着翻页各个分片返回数据越来越多,从而解决海量数据连续分页查询性能逐渐劣化的问题。
图1是本发明提供的一种数据分页查询方法的流程示意图。下面结合图1描述本发明实施例的数据分页查询方法。如图1所示,该方法包括:步骤101、根据当前页面的查询结果,获取下一页面对应的附加条件。
具体地,本发明实施例提供的数据分页查询方法的执行主体为终端。该终端与服务端通信连接,终端位于前端,服务端位于后端。终端将携带有查询条件和分页参数的原始查询语句发送至服务端,服务端执行该原始查询语句,对数据库的各分片进行查询,获取首页的查询结果并向终端返回首页的查询结果。
分页参数,用于限定每个页面中数据的行数。分页参数,可以为预设的行数。对于分页参数的具体值,本发明实施例不进行具体限制。
每一条数据,对应页面中的一行。
需要说明的是,步骤101之前还包括,判断当前页面的查询结果中数据的行数是否小于分页参数。
若判断获知当前页面的查询结果中数据的行数小于分页参数,说明已获取到全部的查询结果,则不再进行查询;
若判断获知当前页面的查询结果中数据的行数等于分页参数,说明还未获取到全部的查询结果,则执行步骤101。
查询条件,可以包括用于查询的检索式和排序条件。
检索式,用于判断数据库分片中的每一条数据是否为符合条件的查询结果。
排序条件,用于将每个页面的查询结果进行排序,排序的依据为该排序条件。排序条件,可以包括用于排序的字段,以及排序方式(升序或降序)。用于排序的字段,可以称为排序字段。
可以理解的是,首页为第一个当前页面,终端获取当前页面的查询结果之后,由于当前页面的查询结果是根据排序条件进行后获得的,因此,根据当前页面的查询结果中各行数据的排序字段的值的范围,可以确定已查询过数据库中的哪些数据,因而可以将下一页面的查询结果对应查询范围作为下一页面对应的附加条件。
下一页面对应的附加条件,用于限制下一页面的查询结果对应查询范围。因此,下一页面的查询结果,是通过在该查询范围内,根据查询条件进行查询并排序后获得的。
可以将数据库中排除已获取的各个页面的查询结果之外的部分,作为下一页面对应的附加条件。
步骤102、将翻页指令和下一页面对应的附加条件发送至服务端,以使得服务端响应于翻页指令,根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果。
具体地,终端获取下一页面对应的附加条件之后,可以将将翻页指令和下一页面对应的附加条件发送至服务端。
翻页指令,用于指示服务端进行下一页面的查询,获取下一页面的查询结果。
可以理解的是,服务端根据原始查询语句已获得查询条件和分页参数,服务端接收翻页指令和下一页面对应的附加条件之后,针对翻页指令进行相应的响应,第二个页面为下一页面时,服务端可以在原始查询语句的基础上,加入第二个页面对应的附加条件,生成第二个页面对应的查询语句。第二个页面对应的查询语句,用于获取第二个页面的查询结果。服务端通过执行第二个页面对应的查询语句,获取符合条件的数据并排序,作为第二个页面的查询结果。
第二个页面之后的任一页面为下一页面时,服务端可以在当前页面对应的查询语句的基础上,将当前页面对应的附加条件修改为下一页面对应的附加条件,生成下一页面对应的查询语句。下一页面对应的查询语句,用于获取下一页面的查询结果。服务端通过执行下一页面对应的查询语句,获取符合条件的数据并排序,作为下一页面的查询结果。
需要说明的是,传统的数据分页查询方法,服务端根据原始查询语句返回各个页面的查询结果,对于每个页面,各个分片需要返回已经获取的数据(该页面之前的各个页面的查询结果)。而本发明实施例中,对于每个页面,各个分片在排除了该页面之前的各个页面的查询结果之外的部分中进行查询,不需要返回该页面之前的各个页面的查询结果,不会出现随着翻页各个分片返回数据越来越多的现象,不会造成海量数据连续分页查询性能逐渐劣化。
本发明实施例根据当前页面的查询结果,获取下一页面对应的附加条件并发送至服务端,使得服务端根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果,能提高在海量数据存量情况下连续翻页的查询性能。进一步地,根据每一页面对应的附加条件,能逐步缩小查询范围,能提高分页查询的效率。
基于上述任一实施例的内容,将翻页指令和下一页面对应的附加条件发送至服务端之后,还包括:接收服务端发送的下一页面的查询结果。
具体地,服务端执行下一页面对应的附加条件,获取下一页面的查询结果之后,将取下一页面的查询结果发送至终端。
终端接收服务端发送的下一页面的查询结果,将上述下一页面的查询结果作为新的当前页面,执行步骤101和步骤102,进行后续的分页查询,直至获取全部分页的查询结果。
本发明实施例通过接收服务端发送的下一页面的查询结果,从而能将下一页面的查询结果作为新的当前页面的查询结果,进行后续的分页查询,直至获取全部分页的查询结果,能提高在海量数据存量情况下连续翻页的查询性能。
基于上述任一实施例的内容,根据当前页面的查询结果,获取下一页面对应的附加条件的具体步骤包括:获取当前页面的查询结果中最后一行数据中的目标参数。
具体地,目标参数,为排序字段的值。
终端获取当前页面的查询结果之后,可以根据当前页面的查询结果中最后一行数据中排序字段的值。作为当前页面的查询结果中最后一行数据中的目标参数。
根据当前页面的查询结果中最后一行数据中的目标参数,获取下一页面对应的附加条件。
具体地,由于排序字段用于排序,因而当前页面的查询结果中最后一行数据中的目标参数可以表示已获取的各页面的查询结果所对应的范围,后续各页面的查询结果,只需在数据库中排除上述已获取的各页面的查询结果所对应的范围之外的部分进行查询和排序即可获取。因此,根据当前页面的查询结果中最后一行数据中的目标参数,可以获得下一页面对应的附加条件。
本发明实施例根据当前页面的查询结果中最后一行数据中的目标参数,获取下一页面对应的附加条件,能逐步缩小查询范围,能提高分页查询的效率,能提高在海量数据存量情况下连续翻页的查询性能。
基于上述任一实施例的内容,目标参数包括主键和索引。
具体地,目标参数可以包括主键和索引。
例如,对于表operate_log(操作日志表),其中有字段:id(全局唯一标识,UUID)、create_time(创建时间)、operate_type(操作类型)、ip(机器ip地址)、mac(机器mac地址)、user_id(用户id)、org_id(组织id);分片字段为id,分片算法为hash算法;排序字段可以为id(主键)和create_time(索引)。
首页使用原始查询语句:
select*from operate_log where create_time between$startTime and$endTime and operate_type=$operateType and ip=$ip and...order by create_timedesc,id limit 0,$pageNum
SQL语句中的$X标识代表着一个变量,终端将最后一行数据的create_time和id记录下来,在之后的翻页中传给后端。
在之后的分页查询中,服务端使用终端传来的最小create_time和最大id作为附加条件来限制数据的查询范围,并使用limit限制条数。
之后各页面的查询语句如下:
select*from operate_log where create_time between$startTime and$endTime and operate_type=$operateType and ip=$ip and...and(create_time<$prePageLastCreateTime or(create_time=$prePageLastCreateTime and id>prePageLastId))order by create_time desc,id limit$pageNum
通过组合create_time和id,既可以保障数据的有序性,又可以保障数据的唯一性,通过limit行数可以保障Mycat等插件下发到底层的SQL语句不会查询超出限制。
本发明实施例通过将主键和索引作为目标参数,从而能根据目标参数逐步缩小查询范围,能提高分页查询的效率,能提高在海量数据存量情况下连续翻页的查询性能。
为了便于对本发明上述各实例的理解,下面通过一个实例进行说明。
本实例中已部署一个Mycat集群。Mycat下有16个分片。
表结构定义:
CREATE TABLE`operate_log`(`id`varchar(32)NOT NULL,`create_time`datetime NULL,`opereate_type`tinyint NULL,`ip`int NULL,`mac`varchar(255)NULL,`user_id`varchar(32)NULL,`org_id`varchar(32)NULL,`user_name`varchar(32)NULL,`org_name`varchar(32)NULL,`org_path`varchar(255)NULL,`operate_detail`varchar(255)NULL,PRIMARY KEY(`id`),INDEX`index_create_time`(`create_time`))
配置Mycat该表的分片方式为hash分片,分片字段为id
通过Mycat往该表添加1亿条数据。
首页查询:假设时间范围为2020-01-01 00:00:00-2021-01-01 00:00:00,一页大小为30行。
原始查询语句为:
select*from operate_log where create_time between‘2020-01-01 00:00:00’and‘2021-01-01 00:00:00’order by create_time desc,id limit 0,30
其中,create_time between‘2020-01-01 00:00:00’and‘2021-01-01 00:00:00’为查询条件中的检索式,create_time desc,id为查询条件中的排序条件,30为分页参数。
假设返回来的数据最后一条的createTime为2020-01-02 00:00:00,id为0000112d547142c2b2ea5bc68a6549fe。
第二个页面的查询语句为:
select*from operate_log where create_time between‘2020-01-01 00:00:00’and‘2021-01-01 00:00:00’and(create_time<’2020-01-02 00:00:00’or(create_time=’2020-01-02 00:00:00’and id>0000112d547142c2b2ea5bc68a6549fe))order bycreate_time desc,id limit 30
其中,create_time<’2020-01-02 00:00:00’or(create_time=’2020-01-02 00:00:00’and id>0000112d547142c2b2ea5bc68a6549fe)为第二个页面对应的附加条件。
后续的查询语句中,替换其中下一页面对应的附加条件即可。
图2是本发明提供的一种数据分页查询方法的流程示意图。基于上述任一实施例的内容,如图2所示,一种数据分页查询方法包括:步骤201、接收终端发送的翻页指令和下一页面对应的附加条件。
其中,下一页面对应的附加条件,是终端根据当前页面的查询结果获取的。
具体地,本发明实施例提供的数据分页查询方法的执行主体为服务端。终端与该服务端通信连接,终端位于前端,服务端位于后端。终端将携带有查询条件和分页参数的原始查询语句发送至服务端,服务端执行该原始查询语句,对数据库的各分片进行查询,获取首页的查询结果并向终端返回首页的查询结果。
下一页面,可以为从第二个页面开始的各页面。
终端接收服务端返回的当前页面的查询结果之后,根据当前页面的查询结果,获取下一页面对应的附加条件。
下一页面对应的附加条件,用于限制下一页面的查询结果对应查询范围。因此,下一页面的查询结果,是通过在该查询范围内,根据查询条件进行查询并排序后获得的。
终端可以将数据库中排除已获取的各个页面的查询结果之外的部分,作为下一页面对应的附加条件。
终端获取下一页面对应的附加条件之后,可以将翻页指令和下一页面对应的附加条件发送至服务端,服务端接收翻页指令和下一页面对应的附加条件。
翻页指令,用于指示服务端进行下一页面的查询,获取下一页面的查询结果。
步骤202、响应于翻页指令,根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果。
具体地,服务端接收翻页指令和下一页面对应的附加条件之后,针对翻页指令进行相应的响应,第二个页面为下一页面时,服务端可以在原始查询语句的基础上,加入第二个页面对应的附加条件,生成第二个页面对应的查询语句。第二个页面对应的查询语句,用于获取第二个页面的查询结果。服务端通过执行第二个页面对应的查询语句,获取符合条件的数据并排序,作为第二个页面的查询结果。
第二个页面之后的任一页面为下一页面时,服务端可以在当前页面对应的查询语句的基础上,将当前页面对应的附加条件修改为下一页面对应的附加条件,生成下一页面对应的查询语句。下一页面对应的查询语句,用于获取下一页面的查询结果。服务端通过执行下一页面对应的查询语句,获取符合条件的数据并排序,作为下一页面的查询结果。
本发明实施例根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果,能提高在海量数据存量情况下连续翻页的查询性能。进一步地,根据每一页面对应的附加条件,能逐步缩小查询范围,能提高分页查询的效率。
基于上述任一实施例的内容,响应于翻页指令,根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果之后,还包括:将下一页面的查询结果发送至终端。
具体地,服务端执行下一页面对应的附加条件,获取下一页面的查询结果之后,将取下一页面的查询结果发送至终端。
终端接收服务端发送的下一页面的查询结果,将上述下一页面的查询结果作为新的当前页面,从而进行后续的分页查询,直至获取全部分页的查询结果。
本发明实施例通过向终端发送的下一页面的查询结果,从而能将下一页面的查询结果作为新的当前页面的查询结果,进行后续的分页查询,直至获取全部分页的查询结果,能提高在海量数据存量情况下连续翻页的查询性能。
下面对本发明提供的数据分页查询装置进行描述,下文描述的数据分页查询装置与上文描述的数据分页查询方法可相互对应参照。
图3是根据本发明实施例提供的数据分页查询装置的结构示意图。基于上述任一实施例的内容,如图3所示,该装置包括获取模块301和第一通信模块302,其中:
获取模块301,用于根据当前页面的查询结果,获取下一页面对应的附加条件;
第一通信模块302,用于将翻页指令和下一页面对应的附加条件发送至服务端,以使得服务端响应于翻页指令,根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果。
具体地,获取模块301和第一通信模块302电连接。
获取模块301可以根据当前页面的查询结果中各行数据的排序字段的值的范围,可以确定已查询过数据库中的哪些数据,可以将数据库中排除已获取的各个页面的查询结果之外的部分,作为下一页面对应的附加条件。
第一通信模块302获取下一页面对应的附加条件之后,可以将翻页指令和下一页面对应的附加条件发送至服务端。
服务端根据原始查询语句已获得查询条件和分页参数,服务端接收翻页指令和下一页面对应的附加条件之后,针对翻页指令进行相应的响应,第二个页面为下一页面时,服务端可以在原始查询语句的基础上,加入第二个页面对应的附加条件,生成第二个页面对应的查询语句。第二个页面对应的查询语句,用于获取第二个页面的查询结果。服务端通过执行第二个页面对应的查询语句,获取符合条件的数据并排序,作为第二个页面的查询结果。
第二个页面之后的任一页面为下一页面时,服务端可以在当前页面对应的查询语句的基础上,将当前页面对应的附加条件修改为下一页面对应的附加条件,生成下一页面对应的查询语句。下一页面对应的查询语句,用于获取下一页面的查询结果。服务端通过执行下一页面对应的查询语句,获取符合条件的数据并排序,作为下一页面的查询结果。
需要说明的是,获取模块301具体用于若判断获知当前页面的查询结果中数据的行数等于分页参数,则根据当前页面的查询结果,获取下一页面对应的附加条件。
第一通信模块302,还用于接收服务端发送的下一页面的查询结果。
获取模块301可以包括:
参数获取单元,用于获取当前页面的查询结果中最后一行数据中的目标参数;
附加条件获取单元,用于根据当前页面的查询结果中最后一行数据中的目标参数,获取下一页面对应的附加条件。
本发明实施例提供的数据分页查询装置,用于执行本发明上述数据分页查询方法,其实施方式与本发明提供的数据分页查询方法的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
该数据分页查询装置用于前述各实施例的数据分页查询方法。因此,在前述各实施例中的数据分页查询方法中的描述和定义,可以用于本发明实施例中各执行模块的理解。
本发明实施例根据当前页面的查询结果,获取下一页面对应的附加条件并发送至服务端,使得服务端根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果,能提高在海量数据存量情况下连续翻页的查询性能。进一步地,根据每一页面对应的附加条件,能逐步缩小查询范围,能提高分页查询的效率。
图4是根据本发明实施例提供的数据分页查询装置的结构示意图。基于上述任一实施例的内容,如图4所示,该装置包括第二通信模块401和查询模块402,其中:
第二通信模块401,用于接收终端发送的翻页指令和下一页面对应的附加条件;
查询模块402,用于响应于翻页指令,根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果;
其中,下一页面对应的附加条件,是终端根据当前页面的查询结果获取的。
具体地,第二通信模块401和查询模块402电连接。
终端获取下一页面对应的附加条件之后,可以将翻页指令和下一页面对应的附加条件发送至服务端,服务端可以通过第二通信模块401接收翻页指令和下一页面对应的附加条件。
查询模块402针对翻页指令进行相应的响应,第二个页面为下一页面时,查询模块402可以在原始查询语句的基础上,加入第二个页面对应的附加条件,生成第二个页面对应的查询语句。第二个页面对应的查询语句,用于获取第二个页面的查询结果。查询模块402通过执行第二个页面对应的查询语句,获取符合条件的数据并排序,作为第二个页面的查询结果。
第二个页面之后的任一页面为下一页面时,查询模块402可以在当前页面对应的查询语句的基础上,将当前页面对应的附加条件修改为下一页面对应的附加条件,生成下一页面对应的查询语句。下一页面对应的查询语句,用于获取下一页面的查询结果。查询模块402通过执行下一页面对应的查询语句,获取符合条件的数据并排序,作为下一页面的查询结果。
第二通信模块401,还用于将下一页面的查询结果发送至终端。
本发明实施例提供的数据分页查询装置,用于执行本发明上述数据分页查询方法,其实施方式与本发明提供的数据分页查询方法的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
该数据分页查询装置用于前述各实施例的数据分页查询方法。因此,在前述各实施例中的数据分页查询方法中的描述和定义,可以用于本发明实施例中各执行模块的理解。
本发明实施例根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果,能提高在海量数据存量情况下连续翻页的查询性能。进一步地,根据每一页面对应的附加条件,能逐步缩小查询范围,能提高分页查询的效率。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储在存储器530中并可在处理器510上运行的逻辑指令,以执行上述各方法实施例提供的数据分页查询方法,该方法包括:根据当前页面的查询结果,获取下一页面对应的附加条件;将翻页指令和下一页面对应的附加条件发送至服务端,以使得服务端响应于翻页指令,根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果;或者该方法包括:接收终端发送的翻页指令和下一页面对应的附加条件;响应于翻页指令,根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果;其中,下一页面对应的附加条件,是终端根据当前页面的查询结果获取的。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例提供的电子设备中的处理器510可以调用存储器530中的逻辑指令,其实施方式与本发明提供的数据分页查询方法的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的数据分页查询方法,该方法包括:根据当前页面的查询结果,获取下一页面对应的附加条件;将翻页指令和下一页面对应的附加条件发送至服务端,以使得服务端响应于翻页指令,根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果;或者该方法包括:接收终端发送的翻页指令和下一页面对应的附加条件;响应于翻页指令,根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果;其中,下一页面对应的附加条件,是终端根据当前页面的查询结果获取的。
本发明实施例提供的计算机程序产品被执行时,实现上述数据分页查询方法,其具体的实施方式与前述方法的实施例中记载的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的数据分页查询方法,该方法包括:根据当前页面的查询结果,获取下一页面对应的附加条件;将翻页指令和下一页面对应的附加条件发送至服务端,以使得服务端响应于翻页指令,根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果;或者该方法包括:接收终端发送的翻页指令和下一页面对应的附加条件;响应于翻页指令,根据查询条件、分页参数和下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果;其中,下一页面对应的附加条件,是终端根据当前页面的查询结果获取的。
本发明实施例提供的非暂态计算机可读存储介质上存储的计算机程序被执行时,实现上述数据分页查询方法,其具体的实施方式与前述方法的实施例中记载的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种数据分页查询方法,其特征在于,包括:
根据当前页面的查询结果,获取下一页面对应的附加条件;
将翻页指令和所述下一页面对应的附加条件发送至服务端,以使得所述服务端响应于所述翻页指令,根据查询条件、分页参数和所述下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果;
其中,所述根据当前页面的查询结果,获取下一页面对应的附加条件的具体步骤包括:
获取当前页面的查询结果中最后一行数据中的目标参数,目标参数包括主键和索引;
根据所述当前页面的查询结果中最后一行数据中的目标参数,获取所述下一页面对应的附加条件;
所述将翻页指令和所述下一页面对应的附加条件发送至服务端之后,还包括:
接收所述服务端发送的所述下一页面的查询结果;
替换所述下一页面对应的附加条件。
2.一种数据分页查询方法,其特征在于,包括:
接收终端发送的翻页指令和下一页面对应的附加条件;
响应于所述翻页指令,根据查询条件、分页参数和所述下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果;
其中,所述下一页面对应的附加条件,是所述终端根据当前页面的查询结果获取的;
所述响应于所述翻页指令,根据查询条件、分页参数和所述下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果之后,还包括:
将所述下一页面的查询结果发送至所述终端。
3.一种数据分页查询装置,其特征在于,包括:
获取模块,用于根据当前页面的查询结果,获取下一页面对应的附加条件;
第一通信模块,用于将翻页指令和所述下一页面对应的附加条件发送至服务端,以使得所述服务端响应于所述翻页指令,根据查询条件、分页参数和所述下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果;
其中,所述根据当前页面的查询结果,获取下一页面对应的附加条件的具体步骤包括:
获取当前页面的查询结果中最后一行数据中的目标参数,目标参数包括主键和索引;
根据所述当前页面的查询结果中最后一行数据中的目标参数,获取所述下一页面对应的附加条件;
所述将翻页指令和所述下一页面对应的附加条件发送至服务端之后,还包括:
接收所述服务端发送的所述下一页面的查询结果;
替换所述下一页面对应的附加条件。
4.一种数据分页查询装置,其特征在于,包括:
第二通信模块,用于接收终端发送的翻页指令和下一页面对应的附加条件;
查询模块,用于响应于所述翻页指令,根据查询条件、分页参数和所述下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果;
其中,所述下一页面对应的附加条件,是所述终端根据当前页面的查询结果获取的;
所述响应于所述翻页指令,根据查询条件、分页参数和所述下一页面对应的附加条件生成用于获取下一页面的查询结果的查询语句并执行,获取下一页面的查询结果之后,还包括:
将所述下一页面的查询结果发送至所述终端。
5.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1所述数据分页查询方法的步骤。
6.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1所述数据分页查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011460731.6A CN112416967B (zh) | 2020-12-11 | 2020-12-11 | 数据分页查询方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011460731.6A CN112416967B (zh) | 2020-12-11 | 2020-12-11 | 数据分页查询方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112416967A CN112416967A (zh) | 2021-02-26 |
CN112416967B true CN112416967B (zh) | 2024-05-14 |
Family
ID=74775642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011460731.6A Active CN112416967B (zh) | 2020-12-11 | 2020-12-11 | 数据分页查询方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416967B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326302A (zh) * | 2021-05-28 | 2021-08-31 | 网易(杭州)网络有限公司 | 数据查询方法及装置、存储介质 |
CN115935090B (zh) * | 2023-03-10 | 2023-06-16 | 北京锐服信科技有限公司 | 一种基于时间分片的数据查询方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281582A (zh) * | 2013-07-02 | 2015-01-14 | 阿里巴巴集团控股有限公司 | 分页显示控制方法和装置 |
CN107045499A (zh) * | 2016-02-05 | 2017-08-15 | 中兴通讯股份有限公司 | 一种实现数据查询的方法和服务器 |
CN109344197A (zh) * | 2018-09-13 | 2019-02-15 | 广州帷策智能科技有限公司 | 基于大数据的分页下载方法和装置 |
CN110555034A (zh) * | 2018-03-28 | 2019-12-10 | 武汉斗鱼网络科技有限公司 | 一种数据查询分页方法、装置、服务器及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6647386B2 (en) * | 2000-12-14 | 2003-11-11 | International Business Machines Corporation | Method, system, and program for reverse index scanning |
-
2020
- 2020-12-11 CN CN202011460731.6A patent/CN112416967B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281582A (zh) * | 2013-07-02 | 2015-01-14 | 阿里巴巴集团控股有限公司 | 分页显示控制方法和装置 |
CN107045499A (zh) * | 2016-02-05 | 2017-08-15 | 中兴通讯股份有限公司 | 一种实现数据查询的方法和服务器 |
CN110555034A (zh) * | 2018-03-28 | 2019-12-10 | 武汉斗鱼网络科技有限公司 | 一种数据查询分页方法、装置、服务器及介质 |
CN109344197A (zh) * | 2018-09-13 | 2019-02-15 | 广州帷策智能科技有限公司 | 基于大数据的分页下载方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112416967A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112416967B (zh) | 数据分页查询方法、装置、电子设备及存储介质 | |
CN107273540B (zh) | 分布式搜索及索引更新方法、系统、服务器及计算机设备 | |
CN103703467B (zh) | 存储数据的方法和装置 | |
CN108197296B (zh) | 基于Elasticsearch索引的数据存储方法 | |
US20200349151A1 (en) | Methods, systems, and computer readable mediums for performing an aggregated free-form query | |
CN108536808B (zh) | 一种基于Spark计算框架的数据获取方法和装置 | |
CN114398371B (zh) | 数据库集群系统多副本分片方法、装置、设备及存储介质 | |
US20150249719A1 (en) | Method and device for pushing information | |
CN113132267B (zh) | 一种分布式系统、数据聚合方法和计算机可读存储介质 | |
CN109299101B (zh) | 数据检索方法、装置、服务器和存储介质 | |
CN110399389A (zh) | 数据分页查询方法、装置、设备及存储介质 | |
CN112199390B (zh) | 一种数据库中数据查询方法、装置、设备及存储介质 | |
CN108009250B (zh) | 一种多分类赛事数据缓存建立、查询方法及装置 | |
CN112231398A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN109981476B (zh) | 一种负载均衡方法和装置 | |
CN110928900B (zh) | 多表数据的查询方法、装置、终端以及计算机存储介质 | |
CN111400253B (zh) | 一种统计数据的查询方法、装置、电子设备及存储介质 | |
CN106844415B (zh) | 一种SparkSQL系统中的数据处理方法和装置 | |
US20170272402A1 (en) | Method and electronic device for searching for special contacts | |
CN111625600A (zh) | 数据存储的处理方法、系统、计算机设备及存储介质 | |
CN112069175A (zh) | 数据查询的方法、装置及电子设备 | |
CN106446080B (zh) | 数据查询的方法、查询服务设备、客户端设备和数据系统 | |
CN105589969A (zh) | 一种数据处理方法及装置 | |
CN114116805A (zh) | 一种数据查询方法、装置及存储介质 | |
CN110019054A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |