CN112699147A - 分页查询方法、装置、设备及存储介质 - Google Patents
分页查询方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112699147A CN112699147A CN202011624712.2A CN202011624712A CN112699147A CN 112699147 A CN112699147 A CN 112699147A CN 202011624712 A CN202011624712 A CN 202011624712A CN 112699147 A CN112699147 A CN 112699147A
- Authority
- CN
- China
- Prior art keywords
- query
- data
- sub
- sorting parameter
- parameter value
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004891 communication Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种分页查询方法、装置、设备及存储介质。该方法包括:获取来用户的分页查询请求;当缓存数据中不包括所述分页查询请求对应的第一查询数据时,利用所述缓存数据中存储的数据,确定各第一分表的起始查询位置和所述各第一分表对应的查询条数;向所述各第一分表发送第一查询指令,并接收所述各第一分表根据所述第一查询指令返回的第二查询数据;根据所述缓存数据和所述第二查询数据,得到所述第一查询数据。可见,本申请运用缓存降低了查询得数据量,从而提高了查询效率。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种分页查询方法、装置、设备及存储介质。
背景技术
随着时间和业务的发展,数据库应用系统中数据表越来越多,数据表中的数据也会越来越多,为了解决数据库应用系统容量有限的问题,通常将数据库应用系统中的数据采用分库分表的方式进行存储。
在分库分表的情形下,当进行分页查询时,需要查询出数据库应用系统每个数据分表中,符合分页查询条件的全部数据,然后对全部数据进行排序,最后提取出指定分页码所对应的数据。然而由于数据分表中满足分页查询条件的数据量往往非常大,因此需要较长的查询时间作为代价。
发明内容
本申请提供了一种分页查询方法、装置、设备及存储介质,用以解决现有的分页查询数据量大,查询时间长的问题。
第一方面、提供一种分页查询方法,包括:
获取用户的分页查询请求,所述分页查询请求包括页码数、每页的条数和排序参数;
当缓存数据中不包括所述分页查询请求对应的第一查询数据时,利用所述缓存数据中存储的数据,确定各第一分表的起始查询位置和所述各第一分表对应的查询条数;
向所述各第一分表发送第一查询指令,并接收所述各第一分表根据所述第一查询指令返回的第二查询数据,所述第一查询指令包括所述起始查询位置、所述查询条数和所述排序参数,所述第一查询指令用于指示所述各第一分表按照所述排序参数,从所述起始查询位置开始,查询得到与所述查询条数对应的所述第二查询数据;
根据所述缓存数据和所述第二查询数据,得到所述第一查询数据。
可选地,所述页码数不大于预设页码数;
利用所述缓存数据中存储的数据,确定各第一分表的起始查询位置,包括:
查找所述各第一分表在所述缓存中存储的第一数据;
根据所述第一数据,确定第一排序参数值,所述第一排序参数值为第一截止行数据的排序字段值,所述第一截止行数据为所述第一数据按照所述排序参数进行排序后的最后一行数据;
将所述第一排序参数值作为所述起始查询位置。
可选地,利用所述缓存数据中存储的数据,确定所述各第一分表对应的查询条数,包括:
确定与所述页码数和所述每页的条数对应的第一条数;
基于所述第一数据,统计得到每个所述第一分表在所述缓存中存储的数据的第二条数;
根据所述第一条数和所述第二条数,确定所述查询条数。
可选地,所述页码数大于预设页码数;
利用所述缓存数据中存储的数据,确定各第一分表的起始查询位置,包括:
查找所述各第一分表在所述缓存中存储的第一数据;
根据所述第一数据,确定第一排序参数值,所述第一排序参数值为第一截止行数据中的排序字段值,所述第一截止行数据为所述第一数据按照所述排序参数进行排序后的最后一行数据;
确定与所述第一排序参数值对应的第一偏移数据条数和第二排序参数值,所述第二排序参数值为所述第一偏移数据条数的数据中的排序字段值;
将所述第二排序参数值作为所述起始查询位置。
可选地,利用所述缓存数据中存储的数据,确定所述各第一分表对应的查询条数,包括:
确定与所述页码数和所述每页的条数对应的第一条数;
统计得到所述缓存中存储的数据的总条数;
确定与所述第一偏移数据条数和所述总条数对应的第二偏移数据条数;
根据所述第一条数和所述第二偏移数据条数,得到所述查询条数。
可选地,确定与所述第一排序参数值对应的第一偏移条数,包括:
确定与所述第一条数和所述总条数对应的第三条数;
获得与所述第三条数和所述各第一分表的个数对应的第四条数;
确定与所述第四条数和所述每页的页数对应的第五条数;
向所述各第一分表发送第二查询指令,所述第二查询指令包括所述第四条数和所述第五条数,所述第二查询指令用于指示查询所述第四条数与所述第五条数之间的数据;
获取所述各第一分表根据所述第二查询指令返回的第三查询数据,并从所述第三查询数据中确定第三排序参数值和第四排序参数值,所述第三排序参数值为所述第三查询数据中所具有的最小排序参数值,所述第四排序参数值为所述第三查询数据中各第二分表具有的最大排序参数值,所述各第二分表为所述各第一分表中除去具有所述第三排序参数值的第一分表后的分表;
向所述各第二分表发送第三查询指令,所述第三查询指令包括所述第三排序参数值和所述第四排序参数值,所述第三查询指令用于指示所述各第二分表查询所述第三排序参数值和所述第四排序参数值之间的数据;
获取所述各第二分表根据所述第三查询指令返回的第四查询数据,并根据所述第四查询数据、所述第四条数和所述第五条数,得到所述第一偏移条数。
可选地,根据所述缓存数据和所述第二查询数据,得到所述第一查询数据,包括:
按照所述排序参数,对所述缓存数据和所述第二查询数据进行排序,得到排序后数据;
确定所述页码数对应的起始行数和结束行数;
从所述排序后数据中,提取与所述起始行数和所述结束行数对应的所述第一查询数据。
可选地,当所述缓存数据中包括所述分页查询请求对应的第一查询数据时,还包括:
获取所述缓存数据中与所述页码数对应的第五排序参数值,所述第五排序参数值为第二截止行数据的排序字段值,所述第二截止行数据为所述缓存数据中,所述页码数对应的数据的最后一行数据;
向所述各第一分表发送第四查询指令,所述第四查询指令包括所述第五排序参数值、所述每页的条数和所述排序参数,所述第四查询指令用于指示所述各第一分表按照所述排序参数,以所述第五排序参数值对应的数据为起始查询位置,查询得到与所述每页的条数对应的第五查询数据;
利用所述第五查询数据得到所述第一查询数据。
第二方面、提供一种分页查询装置,包括:
获取单元,用于获取来用户的分页查询请求,所述分页查询请求包括页码数、每页的条数和排序参数;
第一确定单元,用于当缓存数据中不包括所述分页查询请求对应的第一查询数据时,利用所述缓存数据中存储的数据,确定各第一分表的起始查询位置和所述各第一分表对应的查询条数;
查询单元,用于向所述各第一分表发送第一查询指令,并接收所述各第一分表根据所述第一查询指令返回的第二查询数据,所述第一查询指令包括所述起始查询位置、所述查询条数和所述排序参数,所述第一查询指令用于指示所述各第一分表按照所述排序参数,从所述起始查询位置开始,查询得到与所述查询条数对应的所述第二查询数据;
第二确定单元,根据所述缓存数据和所述第二查询数据,得到所述第一查询数据。
第三方面、提供一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的分页查询方法。
第四方面、提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的分页查询方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的技术方案,当获取到用户的分页查询请求时,根据缓存数据存储的数据确定各第一分表的起始查询位置和各第一分表对应的查询条数,并获得各第一分表根据起始查询位置和查询条数返回的第二查询数据,从而根据缓存数据和第二查询数据,得到第一查询数据。可见,本申请运用缓存降低了查询的数据量,从而提高了查询效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种分页查询方法的流程示意图;
图2为本申请实施例中另一种分页查询方法的流程示意图;
图3为本申请实施例中另一种分页查询方法的流程示意图;
图4为本申请实施例中另一种分页查询方法的流程示意图;
图5为本申请实施例中另一种分页查询方法的流程示意图;
图6为本申请实施例中另一种分页查询方法的流程示意图;
图7为本申请实施例中分页查询装置的结构示意图;
图8为本申请实施例中电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种分页查询请求,该方法可以应用于服务器,如图1所示,该方法可以包括以下步骤:
步骤101、获取用户的分页查询请求。
分页查询请求包括页码数、每页的条数和排序参数。
其中,页码数表征用户想查询的是第几页的数据。例如,当页码数为7时,表示用户想查询第7页的数据。
排序参数为各第一分表的排序依据。
可选地,排序参数可以包括排序字段和排序方式。
例如,排序参数可以为时间和升序排序,即各第一分表中的数据按照时间升序的原则排序。
步骤102、当缓存数据中不包括分页查询请求对应的第一查询数据时,利用缓存数据中存储的数据,确定各第一分表的起始查询位置和各第一分表对应的查询条数。
其中,缓存数据中存储的数据可以包括历史查询数据、以及历史查询数据对应的页码数。
例如,各第一分表数量为2,每页的条数为10,假定用户曾经查询过第一页的数据,那么历史查询数据来自于从分表1查询得到的10条数据和从分表2查询得到的10条数据,因此,历史查询数据包括第一页数据和第二页数据,其中,第一页数据和第二页数据为按照排序参数,对来自于分表1的10条数据和分表2的10条数据进行排序后得到。
可选地,当历史查询数据对应的页码数中不包括分页查询请求对应的页码数时,确定缓存数据中不包括分页查询请求对应的第一查询数据。
可选地,本实施例中,各第一分表的起始查询位置相同,各第一分表对应的查询条数相同。
可选地,起始查询位置为根据缓存数据中的最后一条数据确定。
示例性地,当缓存数据中存储的数据按行存储时,最后一条数据可以为缓存数据中的最后一行数据。
可选地,由于缓存数据中的数据也是按照排序参数排序后的数据,因此,起始查询位置可以根据缓存数据中的最后一行数据的排序参数值确定。
可选地,由于缓存中的存储数量有限,因此当缓存存储的数据的数量达到上限后,可以删除存储最久的数据。此时若因为缓存中删除的数据导致起始查询位置无法确定和/或查询条数无法确定时,采用现有技术中分页查询方法进行分页查询,本实施例不再具体展开描述。
本实施例中,基于节省计算量的考虑,当用户请求查询的页码数较大时,采用二次查询法查询数据,当用户请求查询的页码数较小时,采用记录最大排序值的方式查询数据。在此基础上,本实施例提供以下两种确定起始查询位置的方式:
一个例子中,当页码数不大于预设页码数时,起始查询位置可以为缓存数据中的最后一行数据的排序参数值。
其中,预设页码数可以人为设置。
在此情况下,如图2所示,确定各第一分表的起始查询位置可以包括以下步骤:
步骤201、查找各第一分表在缓存中存储的第一数据。
步骤202、根据第一数据,确定第一排序参数值。
第一排序参数值为第一截止行数据的排序字段值,第一截止行数据为第一数据按照排序参数进行排序后的最后一行数据。
可选地,第一截止行数据的排序字段与排序参数相对应。
示例性地,当排序参数包括时间时,排序字段可以为第一截止行数据中的时间字段,相应地,第一排序参数值为第一截止行数据中时间字段的字段值。
例如,第一排序参数值可以为2020/8/11 10:00:00。
步骤203、将第一排序参数值作为起始查询位置。
在此情况下,在确定各第一分表对应的查询条数时,如图3所示,可以包括以下步骤:
步骤301、确定与页码数和每页的条数对应的第一条数。
可选地,可以对页码数和每页的条数做乘法运算,从而得到第一条数。
例如,当页码数为7、每页的条数为10时,第一条数可为7*10=70。
步骤302、基于第一数据,统计得到每个第一分表在缓存中存储的数据的第二条数。
可以理解的是,在缓存中的数据未被删除过的前提下,不同的第一分表在缓存中存储的数据的条数均为第二条数。
步骤303、根据第一条数和第二条数,确定查询条数。
可选地,可以对第一条数和第二条数求差运算,得到查询条数。
例如,第一条数为70,第二条数为10,那么查询条数为70-10=60。因此每个第一分表对应的查询条数均为60条。
另一个例子中,当页码数大于预设页码数时,起始查询位置可以根据缓存数据中的最后一行数据的排序参数值。
在此情况下,如图4所示,确定各第一分表的起始查询位置可以包括以下步骤:
步骤401、查找各第一分表在缓存中存储的第一数据;
步骤402、根据第一数据,确定第一排序参数值;
第一排序参数值为第一截止行数据中的排序字段值,第一截止行数据为第一数据按照排序参数进行排序后的最后一行数据;
步骤401及步骤402的相关描述可参见步骤201及步骤202,此处不再赘述。
步骤403、确定与第一排序参数值对应的第一偏移数据条数和第二排序参数值;
第二排序参数值为第一偏移数据条数的数据中的排序字段值。
例如,当第一偏移数据条数为498条时,第一排序参数值为2020/8/11 10:00:00时,第一偏移数据条数为时间字段值大于2020/8/1110:00:00的498条数据。第二排序参数值为第498条这一数据的时间字段值。
步骤404、将第二排序参数值作为起始查询位置。
在此情况下,在确定各第一分表对应的查询条数时,如图5所示,可以包括以下步骤:
步骤501、确定与页码数和每页的条数对应的第一条数。
可选地,可以对页码数和每页的条数做乘法运算,从而得到第一条数。
例如,当页码数为7、每页的条数为10时,第一条数可为7*10=70。
步骤502、统计得到缓存中存储的数据的总条数。
步骤503、确定与第一偏移数据条数和总条数对应的第二偏移数据条数。
可选地,可以对第一偏移数据条数和总条数进行求和运算,得到第二偏移数据条数。
例如,当第一偏移数据条数为498条、总条数为500条时,第二偏移数据条数可以为500+498=998条。
步骤504、根据第一条数和第二偏移数据条数,得到查询条数。
可选地,可以对第一条数和第二偏移数据条数进行求差运算,得到查询条数。
例如,第一条数为1010条、第二偏移条数为998条,则查询条数为1010-998=12条。
在此情况下,如图6所示,确定与第一排序参数值对应的第一偏移条数可以包括以下步骤:
步骤601、确定与第一条数和总条数对应的第三条数。
可选地,可以对第一条数和总条数求差运算,得到第三条数。
例如,总条数为500条,第一条数为1000条,那么第三条数为1000-500=500。
步骤602、获得与第三条数和各第一分表的个数对应的第四条数。
可选地,可以对第三条数和各第一分表的个数做除法运算,得到第四条数。
例如,第三条数为500条,各第一分表的个数为2,那么得到的第四条数为500/2=250。
步骤603、确定与第四条数和每页的页数对应的第五条数。
可选地,可以对第四条数和每页的页数进行求和运算,得到第五条数。
例如,第四条数为250,每页的页数为10,那么得到的第五条数为250+10=260。
步骤604、向各第一分表发送第二查询指令。
第二查询指令包括第四条数和第五条数,第二查询指令用于指示查询第四条数与第五条数之间的数据。
步骤605、获取各第一分表根据第二查询指令返回的第三查询数据,并从第三查询数据中确定第三排序参数值和第四排序参数值。
第三排序参数值为第三查询数据中所具有的最小排序参数值,第四排序参数值为第三查询数据中各第二分表具有的最大排序参数值,各第二分表为各第一分表中除去具有第三排序参数值的第一分表后的分表。
可以理解的是,各第一分表对应一个第三排序参数值,而对于第四排序参数值,各第二分表中的每个第二分表对应一个第四排序参数值。
与第一排序参数值相同,第三排序参数值和第四排序参数值也可以为数据中的排序字段值。
其中,第三排序参数值来自于第三查询数据中具有最小排序字段值的数据;针对每个第二分表,第四排序参数值为每个第二分表基于第二查询指令返回的数据中具有最大排序字段值的数据。
以排序字段为时间为例,第三排序参数值为第三查询数据中的最早的时间点,而第四排序参数值为每个第二分表基于第二查询指令返回的数据中的最晚的时间点。
步骤606、向各第二分表发送第三查询指令。
第三查询指令包括第三排序参数值和第四排序参数值,第三查询指令用于指示各第二分表查询第三排序参数值和第四排序参数值之间的数据。
步骤607、获取各第二分表根据第三查询指令返回的第四查询数据,并根据第四查询数据、第四条数和第五条数,得到第一偏移条数。
可选地,可以对第四查询数据和第五条数求差运算,并将求差运算的结果与第四条数求和,得到第一偏移条数。
例如,第四查询数据为12,第五条数为260,第四条数为250,那么第一偏移条数为260-12+250=498。
步骤103、向各第一分表发送第一查询指令,并接收各第一分表根据第一查询指令返回的第二查询数据。
第一查询指令包括起始查询位置、查询条数和排序参数。
第一查询指令用于指示各第一分表按照排序参数,从起始查询位置开始,查询得到与查询条数对应的第二查询数据。
可选地,第一查询指令可以为sql语句。
例如,起始查询位置为2020/8/19 10:00:00,查询条数为60,那么第一查询指令可以为select*from table where orderTime>2020-08-19 10:00:00limit 0,60。
步骤104、根据缓存数据和第二查询数据,得到第一查询数据。
可选地,按照排序参数对缓存数据和第二查询数据组成的数据整体进行排序,得到排序后数据;从排序后数据中提取与分页查询请求中的页码数据对应的数据,作为第一查询数据。
可选地,从排序的结果中提取与分页查询请求中的页码数对应的数据时,确定分页请求中的页码数据对应的起始行数和结束行数,从排序后数据中提取与起始行数和结束行数对应的第一查询数据。
本申请实施例提供的技术方案,当获取到用户的分页查询请求时,根据缓存数据存储的数据确定各第一分表的起始查询位置和各第一分表对应的查询条数,并获得各第一分表根据起始查询位置和查询条数返回的第二查询数据,从而根据缓存数据和第二查询数据,得到第一查询数据。可见,本申请运用缓存降低了查询的数据量,从而提高了查询效率。
可选地,当缓存数据中包括分页查询请求对应的第一查询数据,包括以下两种情况:
第一,缓存数据中包括与分页查询请求中的页码数对应的第五排序参数值;
第五排序参数值为第二截止行数据的排序字段值,第二截止行数据为缓存数据中,页码数对应的数据的最后一行数据;
在此情况下,缓存数据中保存有每页的页码数和每页的第五排序参数值,因此当想得到分页查询请求对应的第一查询数据时,向各第一分表发送第四查询指令,以得到第五查询数据;
其中,第四查询指令包括第五排序参数值、每页的条数和排序参数,第四查询指令用于指示各第一分表按照排序参数,以第五排序参数值对应的数据为起始查询位置,查询得到与每页的条数对应的第五查询数据;
在得到第五查询数据后,按照排序参数对第五查询数据进行排序,并以第五排序参数值作为最后一行数据,从排序后的数据中提取每页的条数对应的数据,并将提取得到的与每页的条数对应的数据作为第一查询数据。
第二,缓存数据包括每页的页码数和每页对应的数据;
在此情况下,从每页的页码数中确定与分页查询请求中的页码数对应的目标页码数,将目标页码数对应的数据作为第一查询数据。
可选地,本实施例还可以保存分页查询请求中的页码数、每页的条数与第一偏移条数的对应关系,以便将来具有根据上述页码数、每页的条数确定第偏移条数的需求时,快速得到第一偏移条数。
另外,由于分表中的数据随时可能更新,而一旦分表中发生数据更新的位置位于第一偏移条数之前,那么第一偏移条数的取值也应该相应发生变化,因此,将来具有根据上述页码数、每页的条数确定第偏移条数的需求时,可以先根据第一偏移条数对应的排序字段值查询在此之前是否存在更新的数据,若是,根据更新的数据的条数适应性(或加或减)调整第一偏移条数。
基于同一构思,本申请实施例中提供了一种分页查询装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图7所示,该装置主要包括:
获取单元701,用于获取来用户的分页查询请求,分页查询请求包括页码数、每页的条数和排序参数;
第一确定单元702,用于当缓存数据中不包括分页查询请求对应的第一查询数据时,利用缓存数据中存储的数据,确定各第一分表的起始查询位置和各第一分表对应的查询条数;
查询单元703,用于向各第一分表发送第一查询指令,并接收各第一分表根据第一查询指令返回的第二查询数据,第一查询指令包括起始查询位置、查询条数和排序参数,第一查询指令用于指示各第一分表按照排序参数,从起始查询位置开始,查询得到与查询条数对应的第二查询数据;
第二确定单元704,根据缓存数据和第二查询数据,得到第一查询数据。
基于同一构思,本申请实施例中还提供了一种电子设备,如图8所示,该电子设备主要包括:处理器801、通信接口802、存储器803和通信总线804,其中,处理器801、通信接口802和存储器803通过通信总线804完成相互间的通信。其中,存储器803中存储有可被至处理器801执行的程序,处理器801执行存储器803中存储的程序,实现如下步骤:
获取来用户的分页查询请求,分页查询请求包括页码数、每页的条数和排序参数;
当缓存数据中不包括分页查询请求对应的第一查询数据时,利用缓存数据中存储的数据,确定各第一分表的起始查询位置和各第一分表对应的查询条数;
向各第一分表发送第一查询指令,并接收各第一分表根据第一查询指令返回的第二查询数据,第一查询指令包括起始查询位置、查询条数和排序参数,第一查询指令用于指示各第一分表按照排序参数,从起始查询位置开始,查询得到与查询条数对应的第二查询数据;
根据缓存数据和第二查询数据,得到第一查询数据。
上述电子设备中提到的通信总线804可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线804可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口802用于上述电子设备与其他设备之间的通信。
存储器803可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器801的存储装置。
上述的处理器801可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的分页查询方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (11)
1.一种分页查询方法,其特征在于,包括:
获取用户的分页查询请求,所述分页查询请求包括页码数、每页的条数和排序参数;
当缓存数据中不包括所述分页查询请求对应的第一查询数据时,利用所述缓存数据中存储的数据,确定各第一分表的起始查询位置和所述各第一分表对应的查询条数;
向所述各第一分表发送第一查询指令,并接收所述各第一分表根据所述第一查询指令返回的第二查询数据,所述第一查询指令包括所述起始查询位置、所述查询条数和所述排序参数,所述第一查询指令用于指示所述各第一分表按照所述排序参数,从所述起始查询位置开始,查询得到与所述查询条数对应的所述第二查询数据;
根据所述缓存数据和所述第二查询数据,得到所述第一查询数据。
2.根据权利要求1所述的方法,其特征在于,所述页码数不大于预设页码数;
利用所述缓存数据中存储的数据,确定各第一分表的起始查询位置,包括:
查找所述各第一分表在所述缓存中存储的第一数据;
根据所述第一数据,确定第一排序参数值,所述第一排序参数值为第一截止行数据的排序字段值,所述第一截止行数据为所述第一数据按照所述排序参数进行排序后的最后一行数据;
将所述第一排序参数值作为所述起始查询位置。
3.根据权利要求2所述的方法,其特征在于,利用所述缓存数据中存储的数据,确定所述各第一分表对应的查询条数,包括:
确定与所述页码数和所述每页的条数对应的第一条数;
基于所述第一数据,统计得到每个所述第一分表在所述缓存中存储的数据的第二条数;
根据所述第一条数和所述第二条数,确定所述查询条数。
4.根据权利要求1所述的方法,其特征在于,所述页码数大于预设页码数;
利用所述缓存数据中存储的数据,确定各第一分表的起始查询位置,包括:
查找所述各第一分表在所述缓存中存储的第一数据;
根据所述第一数据,确定第一排序参数值,所述第一排序参数值为第一截止行数据中的排序字段值,所述第一截止行数据为所述第一数据按照所述排序参数进行排序后的最后一行数据;
确定与所述第一排序参数值对应的第一偏移数据条数和第二排序参数值,所述第二排序参数值为所述第一偏移数据条数的数据中的排序字段值;
将所述第二排序参数值作为所述起始查询位置。
5.根据权利要求4所述的方法,其特征在于,利用所述缓存数据中存储的数据,确定所述各第一分表对应的查询条数,包括:
确定与所述页码数和所述每页的条数对应的第一条数;
统计得到所述缓存中存储的数据的总条数;
确定与所述第一偏移数据条数和所述总条数对应的第二偏移数据条数;
根据所述第一条数和所述第二偏移数据条数,得到所述查询条数。
6.根据权利要求5所述的方法,其特征在于,确定与所述第一排序参数值对应的第一偏移条数,包括:
确定与所述第一条数和所述总条数对应的第三条数;
获得与所述第三条数和所述各第一分表的个数对应的第四条数;
确定与所述第四条数和所述每页的页数对应的第五条数;
向所述各第一分表发送第二查询指令,所述第二查询指令包括所述第四条数和所述第五条数,所述第二查询指令用于指示查询所述第四条数与所述第五条数之间的数据;
获取所述各第一分表根据所述第二查询指令返回的第三查询数据,并从所述第三查询数据中确定第三排序参数值和第四排序参数值,所述第三排序参数值为所述第三查询数据中所具有的最小排序参数值,所述第四排序参数值为所述第三查询数据中各第二分表具有的最大排序参数值,所述各第二分表为所述各第一分表中除去具有所述第三排序参数值的第一分表后的分表;
向所述各第二分表发送第三查询指令,所述第三查询指令包括所述第三排序参数值和所述第四排序参数值,所述第三查询指令用于指示所述各第二分表查询所述第三排序参数值和所述第四排序参数值之间的数据;
获取所述各第二分表根据所述第三查询指令返回的第四查询数据,并根据所述第四查询数据、所述第四条数和所述第五条数,得到所述第一偏移条数。
7.根据权利要求1所述的方法,其特征在于,根据所述缓存数据和所述第二查询数据,得到所述第一查询数据,包括:
按照所述排序参数,对所述缓存数据和所述第二查询数据进行排序,得到排序后数据;
确定所述页码数对应的起始行数和结束行数;
从所述排序后数据中,提取与所述起始行数和所述结束行数对应的所述第一查询数据。
8.根据权利要求1所述的方法,其特征在于,当所述缓存数据中包括所述分页查询请求对应的第一查询数据时,还包括:
获取所述缓存数据中与所述页码数对应的第五排序参数值,所述第五排序参数值为第二截止行数据的排序字段值,所述第二截止行数据为所述缓存数据中,所述页码数对应的数据的最后一行数据;
向所述各第一分表发送第四查询指令,所述第四查询指令包括所述第五排序参数值、所述每页的条数和所述排序参数,所述第四查询指令用于指示所述各第一分表按照所述排序参数,以所述第五排序参数值对应的数据为起始查询位置,查询得到与所述每页的条数对应的第五查询数据;
利用所述第五查询数据得到所述第一查询数据。
9.一种分页查询装置,其特征在于,包括:
获取单元,用于获取来用户的分页查询请求,所述分页查询请求包括页码数、每页的条数和排序参数;
第一确定单元,用于当缓存数据中不包括所述分页查询请求对应的第一查询数据时,利用所述缓存数据中存储的数据,确定各第一分表的起始查询位置和所述各第一分表对应的查询条数;
查询单元,用于向所述各第一分表发送第一查询指令,并接收所述各第一分表根据所述第一查询指令返回的第二查询数据,所述第一查询指令包括所述起始查询位置、所述查询条数和所述排序参数,所述第一查询指令用于指示所述各第一分表按照所述排序参数,从所述起始查询位置开始,查询得到与所述查询条数对应的所述第二查询数据;
第二确定单元,根据所述缓存数据和所述第二查询数据,得到所述第一查询数据。
10.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现权利要求1-8任一项所述的分页查询方法。
11.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现1-8任一项所述的分页查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011624712.2A CN112699147B (zh) | 2020-12-31 | 2020-12-31 | 分页查询方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011624712.2A CN112699147B (zh) | 2020-12-31 | 2020-12-31 | 分页查询方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112699147A true CN112699147A (zh) | 2021-04-23 |
CN112699147B CN112699147B (zh) | 2024-06-18 |
Family
ID=75513147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011624712.2A Active CN112699147B (zh) | 2020-12-31 | 2020-12-31 | 分页查询方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112699147B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140181137A1 (en) * | 2012-12-20 | 2014-06-26 | Dropbox, Inc. | Presenting data in response to an incomplete query |
CN109359060A (zh) * | 2018-10-24 | 2019-02-19 | 北京奇虎科技有限公司 | 数据抽取方法、装置、计算设备及计算机存储介质 |
CN109543027A (zh) * | 2018-11-23 | 2019-03-29 | 苏州好玩友网络科技有限公司 | 分页数据的获取方法及装置、设备及存储介质 |
KR102027823B1 (ko) * | 2019-04-24 | 2019-10-02 | 주식회사 리앙커뮤니케이션즈 | 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템 |
CN110597859A (zh) * | 2019-09-06 | 2019-12-20 | 天津车之家数据信息技术有限公司 | 一种分页查询数据的方法和装置 |
CN110955680A (zh) * | 2019-10-10 | 2020-04-03 | 珠海格力电器股份有限公司 | 一种基于HBase的数据分页查询方法 |
CN111367952A (zh) * | 2020-03-02 | 2020-07-03 | 中国邮政储蓄银行股份有限公司 | 缓存数据的分页查询方法、系统及计算机可读存储介质 |
CN111488370A (zh) * | 2020-04-02 | 2020-08-04 | 杭州迪普科技股份有限公司 | 列表分页快速响应系统和方法 |
CN112035524A (zh) * | 2020-09-02 | 2020-12-04 | 中国银行股份有限公司 | 列表数据查询方法、装置、计算机设备及可读存储介质 |
-
2020
- 2020-12-31 CN CN202011624712.2A patent/CN112699147B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140181137A1 (en) * | 2012-12-20 | 2014-06-26 | Dropbox, Inc. | Presenting data in response to an incomplete query |
CN109359060A (zh) * | 2018-10-24 | 2019-02-19 | 北京奇虎科技有限公司 | 数据抽取方法、装置、计算设备及计算机存储介质 |
CN109543027A (zh) * | 2018-11-23 | 2019-03-29 | 苏州好玩友网络科技有限公司 | 分页数据的获取方法及装置、设备及存储介质 |
KR102027823B1 (ko) * | 2019-04-24 | 2019-10-02 | 주식회사 리앙커뮤니케이션즈 | 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템 |
CN110597859A (zh) * | 2019-09-06 | 2019-12-20 | 天津车之家数据信息技术有限公司 | 一种分页查询数据的方法和装置 |
CN110955680A (zh) * | 2019-10-10 | 2020-04-03 | 珠海格力电器股份有限公司 | 一种基于HBase的数据分页查询方法 |
CN111367952A (zh) * | 2020-03-02 | 2020-07-03 | 中国邮政储蓄银行股份有限公司 | 缓存数据的分页查询方法、系统及计算机可读存储介质 |
CN111488370A (zh) * | 2020-04-02 | 2020-08-04 | 杭州迪普科技股份有限公司 | 列表分页快速响应系统和方法 |
CN112035524A (zh) * | 2020-09-02 | 2020-12-04 | 中国银行股份有限公司 | 列表数据查询方法、装置、计算机设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112699147B (zh) | 2024-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105022811A (zh) | 一种菜谱生成方法及终端 | |
CN107179930B (zh) | 一种应用卸载推荐方法及装置 | |
CN102880713A (zh) | 文件清理方法及装置 | |
CN113377289B (zh) | 一种缓存管理方法、系统、计算设备及可读存储介质 | |
CN111488377A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN111597259B (zh) | 数据存储系统、方法、装置、电子设备及存储介质 | |
CN111563199A (zh) | 一种数据处理方法及装置 | |
CN110750539A (zh) | 基于Redis数据库的信息查询方法、装置及电子设备 | |
CN110909266A (zh) | 深度分页的方法、装置及服务器 | |
CN117591744A (zh) | 查询方法及相关设备 | |
CN110727895B (zh) | 一种敏感词发送方法、装置、电子设备及存储介质 | |
CN111651443A (zh) | 一种数据管理方法、装置、电子设备及存储介质 | |
CN110427538B (zh) | 一种数据查询方法、存储方法、装置及电子设备 | |
CN112699147A (zh) | 分页查询方法、装置、设备及存储介质 | |
CN112579633A (zh) | 一种数据检索方法、装置、设备及存储介质 | |
CN106446080B (zh) | 数据查询的方法、查询服务设备、客户端设备和数据系统 | |
CN113505142B (zh) | 数据查询方法、装置及服务器 | |
EP3736705A1 (en) | Date query method and device | |
CN114637790A (zh) | 榜单数据查询方法、装置、电子设备和存储介质 | |
CN110728113A (zh) | 一种电子表格的信息筛选方法、装置及终端设备 | |
CN114490719A (zh) | 一种数据查询方法、装置、电子设备以及存储介质 | |
CN110990611B (zh) | 图片缓存方法、装置、电子设备及存储介质 | |
CN110674330B (zh) | 表情管理的方法、装置、电子设备及存储介质 | |
CN114896177A (zh) | 数据存储管理方法、装置、设备、介质和产品 | |
CN109241050B (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 | ||
CB02 | Change of applicant information |
Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant after: Jingdong Technology Holding Co.,Ltd. Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant before: Jingdong Digital Technology Holding Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |