CN108090086A - 分页查询方法及装置 - Google Patents

分页查询方法及装置 Download PDF

Info

Publication number
CN108090086A
CN108090086A CN201611041008.8A CN201611041008A CN108090086A CN 108090086 A CN108090086 A CN 108090086A CN 201611041008 A CN201611041008 A CN 201611041008A CN 108090086 A CN108090086 A CN 108090086A
Authority
CN
China
Prior art keywords
paging
initial
data
data number
final
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
Application number
CN201611041008.8A
Other languages
English (en)
Other versions
CN108090086B (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.)
Maipu Communication Technology Co Ltd
Original Assignee
Maipu Communication Technology Co 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 Maipu Communication Technology Co Ltd filed Critical Maipu Communication Technology Co Ltd
Priority to CN201611041008.8A priority Critical patent/CN108090086B/zh
Publication of CN108090086A publication Critical patent/CN108090086A/zh
Application granted granted Critical
Publication of CN108090086B publication Critical patent/CN108090086B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/245Query processing
    • G06F16/2453Query optimisation

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供的一种分页查询方法及装置,属于数据处理领域。所述方法包括:接收携带有目标数据表的数据查询指令;获取目标数据表中的最大数据编号以及最小数据编号,根据最大数据编号以及所述最小数据编号获取总记录数;基于总记录数以及预设分页记录数计算得到初始分页数;根据所述初始分页数以及所述预设分页记录数,得到每个最终分页对应的起始数据编号和结束数据编号;根据每个最终分页的起始数据编号和结束数据编号返回所述目标数据表中对应每个最终分页的数据,从而使得在查询每个最终分页的数据时,不会再涉及到查询该最终分页以外的数据,极大的减小了数据的查询量,提升了数据的查询效率以及返回效率。

Description

分页查询方法及装置
技术领域
本发明涉及数据处理领域,具体而言,涉及一种分页查询方法及装置。
背景技术
随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式,同时,数据库中的信息量越来越大,而人们时常需要根据自身需要检索查询数据库中的各种信息。当数据量过大时,查询时可能会导致各种各样的问题发生,如服务器资源被耗尽,因数据传输量过大而使处理超时等,最终都会导致查询无法完成。
MYSQL数据库的分页查询使用了limit方法,其使用方式为:limit n m,n表示偏移量,m表示查询条数,当n越大的时候效率越慢。例如:select*from table limit 1000020mysql会扫描前面的10020条数据,然后丢掉前面的10000条数据,保留最后的20条数据,可想而知,如果偏移量n越大,mysql limit的执行效率就越低,当查询数据超过100万以上时,其查询时间将可能出现超过JDBC(Java Data Base Connectivity,java数据库连接)和ODBC(Open Database Connectivity,开放数据库连接)的超时时间,导致应用程序异常。
发明内容
有鉴于此,本发明实施例的目的在于提供一种分页查询方法及装置,以提升数据的查询效率,并改善当数据量过大时导致处理超时带来的程序异常或响应不及时的问题。
第一方面,本发明实施例提供一种分页查询方法,所述方法包括:接收携带有目标数据表的数据查询指令;获取所述目标数据表中的最大数据编号以及最小数据编号,根据所述最大数据编号以及所述最小数据编号获取总记录数;基于所述总记录数以及预设分页记录数计算得到初始分页数;根据所述初始分页数以及所述预设分页记录数,得到每个最终分页对应的起始数据编号和结束数据编号;根据所述每个最终分页的起始数据编号和结束数据编号返回所述目标数据表中对应每个最终分页的数据。
第二方面,本发明还提供一种分页查询装置,所述装置包括:接收指令单元,用于接收携带有目标数据表的数据查询指令;第一获取单元,用于获取所述目标数据表中的最大数据编号以及最小数据编号,根据所述最大数据编号以及所述最小数据编号获取总记录数;第二获取单元,用于基于所述总记录数以及预设分页记录数计算得到初始分页数;第三获取单元,用于根据所述初始分页数以及所述预设分页记录数,得到每个最终分页对应的起始数据编号和结束数据编号;返回结果单元,用于根据所述每个最终分页的起始数据编号和结束数据编号返回所述目标数据表中对应每个最终分页的数据。
本发明实施例提供的分页查询方法及装置,在接收到携带有目标数据表的数据查询指令后,获取该目标数据表中的最大数据编号与最小数据编号,以此计算出总记录数,再基于总记录数以及预设分页记录数计算得到初始分页数,根据所述初始分页数以及所述预设分页记录数,得到每个最终分页对应的起始数据编号和结束数据编号,最后根据所述每个最终分页的起始数据编号和结束数据编号返回所述目标数据表中对应每个最终分页的数据,从而使得在查询每个最终分页的数据时,不会再涉及到查询该最终分页以外的数据,极大的减小的数据的查询量,提升了数据的查询效率以及返回效率,改善了由于数据量查询过大造成查询超时导致的发出查询指令的程序无法及时响应或异常的情况。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的用户终端与服务器进行交互的示意图;
图2为一种可应用于本发明实施例中的电子设备的结构框图;
图3为本发明第一实施例提供的一种分页查询方法的流程图;
图4为本发明第二实施例提供的一种分页查询方法的流程图;
图5为本发明第三实施例提供的一种分页查询装置的结构框图;
图6为本发明第四实施例提供的一种分页查询装置的结构框图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1为本发明实施例提供的用户终端10与服务器20进行交互的示意图,所述服务器20通过网络30与一个或多个用户终端10进行通信连接,以进行数据通信或交互。所述服务器20可以是网络服务器、数据库服务器等。所述用户终端10可以是个人电脑(personalcomputer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)、可穿戴设备等终端。
图2示出了一种可应用于本申请实施例中的电子设备400的结构框图。该电子设备400可以作为用户终端10,也可以是作为服务器20。如图2所示,电子设备400可以包括存储器402、存储控制器403、处理器404和网络单元405。
存储器402、存储控制器403、处理器404、网络单元405各元件之间直接或间接地电连接,以实现数据的传输或交互。例如,这些元件之间可以通过一条或多条通讯总线或信号总线实现电连接。所述分页查询方法分别包括至少一个可以以软件或固件(firmware)的形式存储于存储器402中的软件功能单元,例如所述分页查询装置包括的软件功能单元或计算机程序。
存储器402可以存储各种软件程序以及单元,如本申请实施例提供的分页查询方法及装置对应的程序指令/单元。处理器404通过运行存储在存储器402中的软件程序以及单元,从而执行各种功能应用以及数据处理,即实现本申请实施例中的分页查询方法。存储器402可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(ReadOnly Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器404可以是一种集成电路芯片,具有信号处理能力。上述处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
网络单元405用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。
当电子设备400为用户终端10时,还可以包括显示单元,该显示单元可以在所述用户终端10与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。例如,可以显示用户终端10所接收到的物品券的信息。
第一实施例
请参照图3,图3为本发明第一实施例提供的一种分页查询方法的流程图,所述分页查询方法具体包括如下步骤:
步骤S110:接收携带有目标数据表的数据查询指令。
当用户需要对数据库中的某些数据进行查询或者导出时,作为一种实施方式,用户可以通过用户终端在网络条件下向发送数据查询指令给服务器,所述数据查询指令可以包括:用户所需查询的数据编号区间、所需查询的分页号、目标数据表中的数据等等,存有数据库的服务器端就会接收到用户终端发送的携带有目标数据表的数据查询指令,服务器再根据所述数据查询指令完成相应的数据查询,其中服务器的数据库中可以有一张或者多张表,并对每张表内置了索引,使得数据查询效率可以很大程度上提高。
步骤S120:获取所述目标数据表中的最大数据编号以及最小数据编号,根据所述最大数据编号以及所述最小数据编号获取总记录数。
服务器在接收到携带有目标数据表的数据查询指令时,获取目标数据表中的最大数据编号与最小数据编号,再根据最大数据编号与最小数据编号获取总记录数,其中,最大数据编号与最小数据编号为该目标数据表中数据记录的最大数据编号和最小数据编号。或者,作为一种实施方式,当所述数据查询指令还携带有指定区间时,那么最大数据编号与最小数据编号可以为该目标数据表中指定区间内的最大数据编号与最小数据编号,总记录数为最大数据编号减去最小数据编号再加一。
下面通过举例来说明,例如下图为目标数据表,表中包括数据编号、月份、日期和时间。
数据编号 月份 日期 时间
1 4 2016-1-1 5:00
2 5 2016-1-2 6:00
3 6 2016-1-3 7:00
4 7 2016-1-4 8:00
如上表,当数据查询指令携带有指定区间时,其指定区间可以为上表中的月份4—7、或者日期2016-1-1—2016-1-3、或者时间6:00—7:00等其他区间,其指定区间内的最大数据编号与最小数据编号,可以这样理解,例如,区间为月份4—7的最大数据编号为4,最小数据编号为1,总记录数为4;指定区间为时间6:00—7:00的最大数据编号为3,最小数据编号为2,总记录数为2。
当数据查询指令没有携带指定区间时,其最大数据编号就为4,最小数据编号就为1,总记录数为4。
步骤S130:基于所述总记录数以及预设分页记录数计算得到初始分页数。
计算出总记录数后,再计算初始分页数,所述预设分页记录数为程序设定的每一初始分页的数据记录条数,当所述预设分页记录数能被所述总记录数整除时,则初始分页数为总记录数除以预设分页记录数的商。例如,如步骤S200中的目标数据表,若预设分页记录数为2,总记录数为4,那么初始分页数就为2;当所述预设分页记录数不能被所述总记录数整除时,则初始分页数为总记录数除以预设分页记录数的商加一。
步骤S140:根据所述初始分页数以及所述预设分页记录数,得到每个最终分页对应的起始数据编号和结束数据编号。
步骤S150:根据所述每个最终分页的起始数据编号和结束数据编号返回所述目标数据表中对应每个最终分页的数据。
获得每个最终分页的起始数据编号和结束数据编号后,再返回目标数据表中对应每个最终分页的数据,从而使得在查询每个最终分页的数据时,不会再涉及到查询该最终分页以外的数据,极大的减小的数据的查询量,提升了数据的查询效率以及返回效率,改善了由于数据量查询过大造成查询超时导致的发出查询指令的程序无法及时响应或异常的情况。
第二实施例
请参照图4,图4为本发明第二实施例提供的一种分页查询方法的流程图,所述分页查询方法具体包括如下步骤:
步骤S210:接收携带有目标数据表的数据查询指令。
步骤S220:获取所述目标数据表中的最大数据编号以及最小数据编号,根据所述最大数据编号以及所述最小数据编号获取总记录数。
步骤S230:基于所述总记录数以及预设分页记录数计算得到初始分页数。
步骤S240:根据所述初始分页数以及所述预设分页记录数,得到每个初始分页的起始数据编号和结束数据编号。
具体地,根据步骤S230中计算出的初始分页数确定每个初始分页对应的分页号,其中,所述分页号为根据所述初始分页数依次从小到大排序的数据编号。具体地,例如初始分页数为200,那么每一初始分页所对应的初始分页号为1-200从小到大排序的数据编号。
将所述每个初始分页对应的分页号减一得到相减的差,将所述相减的差乘以所述预设分页记录数得到乘积,将所述乘积与所述最小数据编号相加所得的和为所述每个初始分页的起始数据编号,所述每个初始分页的起始数据编号与所述预设分页记录数相加得到相加的和,将所述相加的和减一得到所述每个初始分页的结束数据编号。例如一个初始分页对应的分页号为20,预设分页记录数为5,最大数据编号为1000,最小数据编号为1,通过上述计算,那么该初始分页的起始数据编号就为96,结束数据编号就为100。
步骤S250:根据所述每个初始分页的起始数据编号和结束数据编号,计算得到所述每个初始分页的实际记录数。
由步骤S240计算出的每个初始分页的起始数据编号和结束数据编号就可以计算出每个初始分页的实际记录数,实际记录数为数据的实际记录条数,该初始分页的实际记录数为该初始分页的结束数据编号减去起始数据编号加一所得。
步骤S260:基于所述每个初始分页的实际记录数,计算得到不饱和初始分页,所述不饱和初始分页的实际记录数小于所述预设分页记录数。
应用SQL语句判断出不饱和初始分页,其判断过程为,若该初始分页的实际记录数小于预设分页记录数,则该初始分页为不饱和初始分页,若该初始分页的实际记录数大于或等于预设分页记录数,则该初始分页为饱和初始分页。例如,若预设分页记录数为7,初始分页的实际记录数若小于7,那么该初始分页则为不饱和的初始分页,若初始分页的实际记录数大于或等于7,那么该初始分页为饱和初始分页。
步骤S270:将不饱和初始分页与相邻的至少下一个初始分页合并,得到分页合并后的每个最终分页对应的起始数据编号和结束数据编号,其中,分页合并后的所述每个最终分页的实际记录数大于或等于所述预设分页记录数。
因为不饱和初始分页的数据记录数丢失,导致其实际记录数低于预设分页记录数,对数据库进行检索效率会非常低下,所以为了提高数据的检索效率,需要对这些不饱和初始分页进行合并。首先需要将每个不饱和初始分页的数据编号由小到大排序,依次对该不饱和初始分页进行合并操作,例如,假如与该不饱和初始分页相邻的下一个初始分页为有数据记录的不饱和初始分页,则将该不饱和初始分页与相邻的下一个初始分页合并,但是假如与该不饱和初始分页相邻的下一个初始分页为没有数据记录的不饱和初始分页,则将与相邻的下一个初始分页相邻的下一个初始分页与该初始分页合并,返回步骤S300,直到合并后的每个最终分页的实际记录数大于或等于所述预设分页记录数。
其中,初始分页合并操作具体为:将所述合并操作的不饱和初始分页的最小的数据编号,作为该不饱和初始分页合并后的最终分页的起始数据编号,将与所述执行合并操作的不饱和初始分页的最后一个的初始分页的最大的数据编号,作为所述执行合并操作的不饱和初始分页合并后的最终分页的结束数据编号,以得到分页合并后的每个最终分页的起始数据编号和结束数据编号,因此,当查询目标数据表中的数据时,只需知道最终分页的起始数据编号和结束数据编号就可以了,不用再查询该最终分页以外的数据了,极大的减小的数据的查询量,提升了数据的查询效率以及返回效率,改善了由于数据量查询过大造成查询超时导致的发出查询指令的程序无法及时响应或异常的情况。
步骤S280:根据所述每个最终分页的起始数据编号和结束数据编号返回所述目标数据表中对应每个最终分页的数据。
针对上述方法的执行过程,下面以一个具体的实施例来详细说明本发明所述的分页查询方法。假设下表为一张目标数据表。
数据编号 月份 日期 时间
1 4 2016-1-1 5:00
2 5 2016-1-2 6:00
3 6 2016-1-3 7:00
4 7 2016-1-4 8:00
5 8 2016-1-5 9:00
......
200
假如用户需要提取目标数据表中的数据,如上表,其目标数据表中的数据记录为1-200,预设分页记录数为5,则用户可以通过用户终端10在网络30条件下向服务器20发送携带有目标数据表的数据查询指令,服务器20在接收到数据查询指令后,根据数据查询指令请求查询目标数据表中的数据,该数据查询指令未携带指令区间,服务器20在收到该数据查询指令后,根据相关的SQL语句,获取该目标数据表中的最大数据编号200以及最小数据编号1,根据所述最大数据编号200以及最小数据编号1获取总记录数,总记录数为最大数据编号200减去最小数据编号1在加1,则总记录数为200。
根据相关的SQL语句,基于所述总记录数200以及预设分页记录数5计算得到初始分页数,初始分页数为总记录数200除以预设分页数5等于40。
根据计算出的初始分页数40以及预设分页记录数5,根据相关的SQL语句,获得每个初始分页的起始数据编号与结束数据编号,例如,根据所述初始分页数40确定每个初始分页对应的分页号,其中,所述分页号为根据所述初始分页数依次从小到大排序的数据编号,其分页号为1-40。
基于每个初始分页对应的分页号计算每个初始分页的起始数据编号和结束数据编号,其中,将所述每个初始分页对应的分页号减一得到相减的差,将所述相减的差乘以所述预设分页记录数得到乘积,将所述乘积与所述最小数据编号相加所得的和为所述每个初始分页的起始数据编号,所述每个初始分页的起始数据编号与所述预设分页记录数相加得到相加的和,将所述相加的和减一得到所述每个初始分页的结束数据编号,例如,初始分页的分页号为5,则该初始分页的起始数据编号为21,结束数据编号为25。
根据所述每个初始分页的起始数据编号和结束数据编号,计算得到所述每个初始分页的实际记录数,基于所述每个初始分页的实际记录数,计算得到不饱和初始分页,所述不饱和初始分页的实际记录数小于所述预设分页记录数;例如,对已经分页的数据记录做count计算,其SQL语句为elect count(id)from表名where id>=分页起始数据编号and id<=分页结束数据编号,若该初始分页的起始数据编号为21,结束数据编号为25,则该初始分页的实际记录数为5;若该初始分页的起始数据编号为22,结束数据编号为25,则count运算计算出该初始分页的实际记录数为4小于预设分页记录数5,则该初始分页为不饱和初始分页,为了减少数据查询的效率,则需要对不饱和初始分页进行合并操作。若count运算计算出的初始分页的实际记录数大于等于预设分页记录数,则该初始分页为饱和初始分页,不进行合并操作。
依照每个所述不饱和初始分页的数据编号由小到大的顺序,依次对所述不饱和初始分页进行合并操作;将所述合并操作的不饱和初始分页的最小的数据编号,作为该不饱和初始分页合并后的最终分页的起始数据编号,将与所述执行合并操作的不饱和初始分页的最后一个的初始分页的最大的数据编号,作为所述执行合并操作的不饱和初始分页合并后的最终分页的结束数据编号,以得到分页合并后的每个最终分页的起始数据编号和结束数据编号。例如,若不饱和初始分页的分页号为5,该初始分页的起始数据编号为22,结束数据编号为25,则继续检查与该初始分页的下一个分页号为6的初始分页,若分页号为6的初始分页的为有数据记录的不饱和初始分页,其起始数据编号为27,结束数据编号为29,则将分页号为5的不饱和初始分页与分页号为6的不饱和初始分页合并为新的最终分页,则合并后的最终分页的起始数据编号为22,结束数据编号为29;若分页号为6的初始分页的为没有数据记录的不饱和初始分页,分页号为7的初始分页为有数据记录的不饱和初始分页,其起始数据编号为31,结束数据编号为34,那么就将分页号为5的初始分页与分页号为6的初始分页与分页号为7的初始分页三页合并为新的最终分页,该最终分页的起始数据编号为22,结束数据编号为34,总之,使得分页合并后的所述每个最终分页的实际记录数大于或等于所述预设分页记录数。
以上述合并操作得到分页合并后的每个最终分页对应的起始数据编号和结束数据编号,针对每个最终分页分别查询每个最终分页的实际记录数,其SQL语句为selectcount(id)from表名where id>=归并最终分页的起始数据编号and id<=归并最终分页的结束数据编号;分页数据查询SQL为select字段1,字段2…字段n from表名where id>=归并最终分页的起始数据编号and id<=归并最终分页的结束数据编号。
再根据每个最终分页对应的起始数据编号和起始数据编号返回目标数据表中对应每个最终分页的数据给用户终端10,用户由此获得需要查询的数据,而不再需要再查询最终分页以外的数据了,极大的减小的数据的查询量,提升了数据的查询效率以及返回效率,改善了由于数据量查询过大造成查询超时导致的发出查询指令的程序无法及时响应或异常的情况。
第三实施例
为实现上述分页查询方法,本发明第三实施例提供一种分页查询装置100,请参照5,图5为本发明第三实施例提供的一种分页查询装置100的结构框图,所述装置包括:接收指令单元110、第一获取单元120、第二获取单元130、第三获取单元140、返回结果单元150。
接收指令单元110,用于接收携带有目标数据表的数据查询指令。
需要说明的是,所述数据查询指令还可以携带有指定区间。
第一获取单元120,用于获取所述目标数据表中的最大数据编号以及最小数据编号,根据所述最大数据编号以及所述最小数据编号获取总记录数。
特别地,当所述查询指令携带有指定区间时,所述第一获取单元120,用于获取所述目标数据表中的所述指定区间的最大数据编号及最小数据编号,根据所述最大数据编号以及所述最小数据编号获取所述指定区间的总记录数。
第二获取单元130,用于基于所述总记录数以及预设分页记录数计算得到初始分页数。
第三获取单元140,用于根据所述初始分页数以及所述预设分页记录数,得到每个最终分页对应的起始数据编号和结束数据编号。
返回结果单元150,用于根据所述每个最终分页的起始数据编号和结束数据编号返回所述目标数据表中对应每个最终分页的数据。
另外,所述初始分页数为所述总记录数除以所述预设分页记录数所得的商。
第四实施例
请参照图6,图6为本发明第四实施例提供的一种分页查询装置200。所述装置包括:接收指令单元210、第一获取单元220、第二获取单元230、第三获取单元240、返回结果单元250。
接收指令单元210,用于接收携带有目标数据表的数据查询指令。
第一获取单元220,用于获取所述目标数据表中的最大数据编号以及最小数据编号,根据所述最大数据编号以及所述最小数据编号获取总记录数。第一获取单元220包括获取分页号子单元222、计算子单元224。
具体地,获取分页号子单元222,用于根据所述初始分页数确定每个初始分页对应的分页号,其中,所述分页号为根据所述初始分页数依次从小到大排序的数据编号。
计算子单元224,用于将所述每个初始分页对应的分页号减一得到相减的差,将所述相减的差乘以所述预设分页记录数得到乘积,将所述乘积与所述最小数据编号相加所得的和为所述每个初始分页的起始数据编号,所述每个初始分页的起始数据编号与所述预设分页记录数相加得到相加的和,将所述相加的和减一得到所述每个初始分页的结束数据编号。
第二获取单元230,用于基于所述总记录数以及预设分页记录数计算得到初始分页数。
第三获取单元240,用于根据所述初始分页数以及所述预设分页记录数,得到每个最终分页对应的起始数据编号和结束数据编号。第三获取单元240包括第一获取子单元242、第二获取子单元244、第三获取子单元246、第四获取子单元248。
具体地,第一获取子单元242,用于根据所述初始分页数以及所述预设分页记录数,得到每个初始分页的起始数据编号和结束数据编号。
第二获取子单元244,用于根据所述每个初始分页的起始数据编号和结束数据编号,计算得到所述每个初始分页的实际记录数。
第三获取子单元246,用于基于所述每个初始分页的实际记录数,得到不饱和初始分页,所述不饱和初始分页的实际记录数小于所述预设分页记录数。
第四获取子单元248,用于将不饱和初始分页与相邻的至少下一个初始分页合并,得到分页合并后的每个最终分页对应的起始数据编号和结束数据编号,其中,分页合并后的所述每个最终分页的实际记录数大于或等于所述预设分页记录数。第四获取子单元248包括排序子单元2481、合并子单元2482。
具体地,排序子单元2481,用于依照每个所述不饱和初始分页的数据编号由小到大的顺序,依次对所述不饱和初始分页进行合并操作;
合并子单元2482,用于将所述合并操作的不饱和初始分页的最小的数据编号,作为该不饱和初始分页合并后的最终分页的起始数据编号,将与所述执行合并操作的不饱和初始分页的最后一个的初始分页的最大的数据编号,作为所述执行合并操作的不饱和初始分页合并后的最终分页的结束数据编号,以得到分页合并后的每个最终分页的起始数据编号和结束数据编号。
返回结果单元250,用于根据所述每个最终分页的起始数据编号和结束数据编号返回所述目标数据表中对应每个最终分页的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的分页查询装置的具体工作过程,可以参考前述分页查询方法中的对应过程,在此不再过多赘述。
综上所述,本发明实施例提供的分页查询方法及装置,在接收到携带有目标数据表的数据查询指令后,获取该目标数据表中的最大数据编号与最小数据编号,以此计算出总记录数,再基于总记录数以及预设分页记录数计算得到初始分页数,根据所述初始分页数以及所述预设分页记录数,得到每个最终分页对应的起始数据编号和结束数据编号,最后根据所述每个最终分页的起始数据编号和结束数据编号返回所述目标数据表中对应每个最终分页的数据,从而使得在查询每个最终分页的数据时,不会再涉及到查询该最终分页以外的数据,极大的减小的数据的查询量,提升了数据的查询效率以及返回效率,改善了由于数据量查询过大造成查询超时导致的发出查询指令的程序无法及时响应或异常的情况。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个单元、程序段或代码的一部分,所述单元、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能单元可以集成在一起形成一个独立的部分,也可以是各个单元单独存在,也可以两个或两个以上单元集成形成一个独立的部分。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (12)

1.一种分页查询方法,其特征在于,所述方法包括:
接收携带有目标数据表的数据查询指令;
获取所述目标数据表中的最大数据编号以及最小数据编号,根据所述最大数据编号以及所述最小数据编号获取总记录数;
基于所述总记录数以及预设分页记录数计算得到初始分页数;
根据所述初始分页数以及所述预设分页记录数,得到每个最终分页对应的起始数据编号和结束数据编号;
根据所述每个最终分页的起始数据编号和结束数据编号返回所述目标数据表中对应每个最终分页的数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述初始分页数以及所述预设分页记录数,得到每个最终分页对应的起始数据编号和结束数据编号的步骤,包括:
根据所述初始分页数以及所述预设分页记录数,得到每个初始分页的起始数据编号和结束数据编号;
根据所述每个初始分页的起始数据编号和结束数据编号,计算得到所述每个初始分页的实际记录数;
基于所述每个初始分页的实际记录数,计算得到不饱和初始分页,所述不饱和初始分页的实际记录数小于所述预设分页记录数;
将不饱和初始分页与相邻的至少下一个初始分页合并,得到分页合并后的每个最终分页对应的起始数据编号和结束数据编号,其中,分页合并后的所述每个最终分页的实际记录数大于或等于所述预设分页记录数。
3.根据权利要求2所述的方法,其特征在于,所述将不饱和初始分页与相邻的至少下一个初始分页合并,得到分页合并后的每个最终分页的起始数据编号和结束数据编号,包括:
依照每个所述不饱和初始分页的数据编号由小到大的顺序,依次对所述不饱和初始分页进行合并操作;
将执行所述合并操作的不饱和初始分页的最小的数据编号,作为该不饱和初始分页合并后的最终分页的起始数据编号,将与执行所述合并操作的不饱和初始分页的最后一个的初始分页的最大的数据编号,作为执行所述合并操作的不饱和初始分页合并后的最终分页的结束数据编号,以得到分页合并后的每个最终分页的起始数据编号和结束数据编号。
4.根据权利要求2所述的方法,其特征在于,所述根据所述初始分页数以及所述预设分页记录数,得到每个初始分页的起始数据编号和结束数据编号,包括:
根据所述初始分页数确定每个初始分页对应的分页号,其中,所述分页号为根据所述初始分页数依次从小到大排序的数据编号;
基于每个初始分页对应的分页号计算每个初始分页的起始数据编号和结束数据编号,其中,将所述每个初始分页对应的分页号减一得到相减的差,将所述相减的差乘以所述预设分页记录数得到乘积,将所述乘积与所述最小数据编号相加所得的和为所述每个初始分页的起始数据编号,所述每个初始分页的起始数据编号与所述预设分页记录数相加得到相加的和,将所述相加的和减一得到所述每个初始分页的结束数据编号。
5.根据权利要求1-4任一所述的方法,其特征在于,所述数据查询指令还携带有指定区间;所述获取所述目标数据表中的最大数据编号以及最小数据编号,根据所述最大数据编号以及所述最小数据编号获取总记录数,包括:
获取所述目标数据表中的所述指定区间的最大数据编号及最小数据编号,根据所述最大数据编号以及所述最小数据编号获取所述指定区间的总记录数。
6.根据权利要求1-4任一所述的方法,其特征在于,当所述预设分页记录数被所述总记录数整除时,所述初始分页数为所述总记录数除以所述预设分页记录数所得的商。
7.一种分页查询装置,其特征在于,所述装置包括:
接收指令单元,用于接收携带有目标数据表的数据查询指令;
第一获取单元,用于获取所述目标数据表中的最大数据编号以及最小数据编号,根据所述最大数据编号以及所述最小数据编号获取总记录数;
第二获取单元,用于基于所述总记录数以及预设分页记录数计算得到初始分页数;
第三获取单元,用于根据所述初始分页数以及所述预设分页记录数,得到每个最终分页对应的起始数据编号和结束数据编号;
返回结果单元,用于根据所述每个最终分页的起始数据编号和结束数据编号返回所述目标数据表中对应每个最终分页的数据。
8.根据权利要求7所述的装置,其特征在于,所述第三获取单元具体包括:
第一获取子单元,用于根据所述初始分页数以及所述预设分页记录数,得到每个初始分页的起始数据编号和结束数据编号;
第二获取子单元,用于根据所述每个初始分页的起始数据编号和结束数据编号,计算得到所述每个初始分页的实际记录数;
第三获取子单元,用于基于所述每个初始分页的实际记录数,得到不饱和初始分页,所述不饱和初始分页的实际记录数小于所述预设分页记录数;
第四获取子单元,用于将不饱和初始分页与相邻的至少下一个初始分页合并,得到分页合并后的每个最终分页对应的起始数据编号和结束数据编号,其中,分页合并后的所述每个最终分页的实际记录数大于或等于所述预设分页记录数。
9.根据权利要求8所述的装置,其特征在于,所述第四获取子单元,包括:
排序子单元,用于依照每个所述不饱和初始分页的数据编号由小到大的顺序,依次对所述不饱和初始分页进行合并操作;
合并子单元,用于将执行所述合并操作的不饱和初始分页的最小的数据编号,作为该不饱和初始分页合并后的最终分页的起始数据编号,将与执行所述合并操作的不饱和初始分页的最后一个的初始分页的最大的数据编号,作为执行所述合并操作的不饱和初始分页合并后的最终分页的结束数据编号,以得到分页合并后的每个最终分页的起始数据编号和结束数据编号。
10.根据权利要求8所述的装置,其特征在于,所述第一获取单元,包括:
获取分页号子单元,用于根据所述初始分页数确定每个初始分页对应的分页号,其中,所述分页号为根据所述初始分页数依次从小到大排序的数据编号;
计算子单元,用于将所述每个初始分页对应的分页号减一得到相减的差,将所述相减的差乘以所述预设分页记录数得到乘积,将所述乘积与所述最小数据编号相加所得的和为所述每个初始分页的起始数据编号,所述每个初始分页的起始数据编号与所述预设分页记录数相加得到相加的和,将所述相加的和减一得到所述每个初始分页的结束数据编号。
11.根据权利要求7-10任一所述的装置,其特征在于,所述数据查询指令还携带有指定区间;
所述第一获取单元,具体用于获取所述目标数据表中的所述指定区间的最大数据编号及最小数据编号,根据所述最大数据编号以及所述最小数据编号获取所述指定区间的总记录数。
12.根据权利要求7-10任一所述的装置,其特征在于,当所述预设分页记录数被所述总记录数整除时,所述初始分页数为所述总记录数除以所述预设分页记录数所得的商。
CN201611041008.8A 2016-11-21 2016-11-21 分页查询方法及装置 Active CN108090086B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611041008.8A CN108090086B (zh) 2016-11-21 2016-11-21 分页查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611041008.8A CN108090086B (zh) 2016-11-21 2016-11-21 分页查询方法及装置

Publications (2)

Publication Number Publication Date
CN108090086A true CN108090086A (zh) 2018-05-29
CN108090086B CN108090086B (zh) 2022-02-22

Family

ID=62170999

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611041008.8A Active CN108090086B (zh) 2016-11-21 2016-11-21 分页查询方法及装置

Country Status (1)

Country Link
CN (1) CN108090086B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874897A (zh) * 2018-05-23 2018-11-23 新华三大数据技术有限公司 数据查询方法及装置
CN109543027A (zh) * 2018-11-23 2019-03-29 苏州好玩友网络科技有限公司 分页数据的获取方法及装置、设备及存储介质
CN110928900A (zh) * 2018-09-17 2020-03-27 马上消费金融股份有限公司 多表数据的查询方法、装置、终端以及计算机存储介质
WO2021031687A1 (zh) * 2019-08-16 2021-02-25 苏宁云计算有限公司 数据库分库分表的分页查询方法、装置和计算机设备
CN112417276A (zh) * 2020-11-18 2021-02-26 北京字节跳动网络技术有限公司 分页数据获取方法、装置、电子设备及计算机可读存储介质
CN113590657A (zh) * 2021-08-09 2021-11-02 咪咕文化科技有限公司 基于数据库分片的数据查询方法、装置和服务器
CN115098215A (zh) * 2022-07-19 2022-09-23 重庆紫光华山智安科技有限公司 基于多服务的数据分页方法、***、电子设备及存储介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0075732A2 (en) * 1981-09-24 1983-04-06 International Business Machines Corporation Method and apparatus for merge processing in a text processing system
CN1866251A (zh) * 2005-12-08 2006-11-22 华为技术有限公司 一种减少分页数据检索时间的方法及装置
CN101051316A (zh) * 2007-05-11 2007-10-10 杭州华三通信技术有限公司 数据查找方法、***及设备
US20090204893A1 (en) * 2002-05-28 2009-08-13 Truc Nguyen Dynamically configurable page numbering system
CN101699440A (zh) * 2009-11-24 2010-04-28 中国电信股份有限公司 按业务检索的方法及***
CN102360371A (zh) * 2011-09-29 2012-02-22 畅捷通信息技术股份有限公司 数据处理装置和数据处理方法
CN102521296A (zh) * 2011-11-30 2012-06-27 向进轮 一种网页隔页数据条目筛选方法
CN102880685A (zh) * 2012-09-13 2013-01-16 北京航空航天大学 一种时间密集大数据量的b/s分区间分页查询方法
CN103020151A (zh) * 2012-11-22 2013-04-03 用友软件股份有限公司 大数据量批处理***和大数据量批处理方法
CN103605750A (zh) * 2013-11-22 2014-02-26 厦门雅迅网络股份有限公司 一种快速的分布式数据分页方法
CN103617232A (zh) * 2013-11-26 2014-03-05 北京京东尚科信息技术有限公司 一种针对HBase表的分页查询方法
CN104298788A (zh) * 2014-11-13 2015-01-21 中国建设银行股份有限公司 一种分页查询方法和***
CN104598390A (zh) * 2011-11-14 2015-05-06 北京奇虎科技有限公司 一种数据存储方法及装置

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0075732A2 (en) * 1981-09-24 1983-04-06 International Business Machines Corporation Method and apparatus for merge processing in a text processing system
US20090204893A1 (en) * 2002-05-28 2009-08-13 Truc Nguyen Dynamically configurable page numbering system
CN1866251A (zh) * 2005-12-08 2006-11-22 华为技术有限公司 一种减少分页数据检索时间的方法及装置
CN101051316A (zh) * 2007-05-11 2007-10-10 杭州华三通信技术有限公司 数据查找方法、***及设备
CN101699440A (zh) * 2009-11-24 2010-04-28 中国电信股份有限公司 按业务检索的方法及***
CN102360371A (zh) * 2011-09-29 2012-02-22 畅捷通信息技术股份有限公司 数据处理装置和数据处理方法
CN104598390A (zh) * 2011-11-14 2015-05-06 北京奇虎科技有限公司 一种数据存储方法及装置
CN102521296A (zh) * 2011-11-30 2012-06-27 向进轮 一种网页隔页数据条目筛选方法
CN102880685A (zh) * 2012-09-13 2013-01-16 北京航空航天大学 一种时间密集大数据量的b/s分区间分页查询方法
CN103020151A (zh) * 2012-11-22 2013-04-03 用友软件股份有限公司 大数据量批处理***和大数据量批处理方法
CN103605750A (zh) * 2013-11-22 2014-02-26 厦门雅迅网络股份有限公司 一种快速的分布式数据分页方法
CN103617232A (zh) * 2013-11-26 2014-03-05 北京京东尚科信息技术有限公司 一种针对HBase表的分页查询方法
CN104298788A (zh) * 2014-11-13 2015-01-21 中国建设银行股份有限公司 一种分页查询方法和***

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
EUGENE AGICHTEIN等: "improving web search ranking by incorporating user behavior information", 《PROCEEDINGS OF THE 29TH ANNUAL》 *
一杯甜酒: ""Mysql学习总结(32)——mysql分页技术详解"", 《HTTPS://WWW.CNBLOGS.COM/ZHANGHAIYANG/P/7212913.HTML》 *
夏雪刚: "基于Web Service的数据库同步***的设计与实现研究", 《自动化与仪器仪表》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874897A (zh) * 2018-05-23 2018-11-23 新华三大数据技术有限公司 数据查询方法及装置
CN108874897B (zh) * 2018-05-23 2019-09-13 新华三大数据技术有限公司 数据查询方法及装置
CN110928900A (zh) * 2018-09-17 2020-03-27 马上消费金融股份有限公司 多表数据的查询方法、装置、终端以及计算机存储介质
CN110928900B (zh) * 2018-09-17 2021-02-19 马上消费金融股份有限公司 多表数据的查询方法、装置、终端以及计算机存储介质
CN109543027A (zh) * 2018-11-23 2019-03-29 苏州好玩友网络科技有限公司 分页数据的获取方法及装置、设备及存储介质
WO2021031687A1 (zh) * 2019-08-16 2021-02-25 苏宁云计算有限公司 数据库分库分表的分页查询方法、装置和计算机设备
CN112417276A (zh) * 2020-11-18 2021-02-26 北京字节跳动网络技术有限公司 分页数据获取方法、装置、电子设备及计算机可读存储介质
CN113590657A (zh) * 2021-08-09 2021-11-02 咪咕文化科技有限公司 基于数据库分片的数据查询方法、装置和服务器
CN115098215A (zh) * 2022-07-19 2022-09-23 重庆紫光华山智安科技有限公司 基于多服务的数据分页方法、***、电子设备及存储介质
CN115098215B (zh) * 2022-07-19 2024-06-04 重庆紫光华山智安科技有限公司 基于多服务的数据分页方法、***、电子设备及存储介质

Also Published As

Publication number Publication date
CN108090086B (zh) 2022-02-22

Similar Documents

Publication Publication Date Title
CN108090086A (zh) 分页查询方法及装置
CN108388675A (zh) 一种身份标识拉通方法及终端设备
CN108427695A (zh) 企业推荐方法及应用服务器
EP3217296A1 (en) Data query method and apparatus
CN107273519A (zh) 数据分析方法、装置、终端及存储介质
CN107168977A (zh) 一种数据查询的优化方法及装置
CN110727857A (zh) 针对业务对象识别***的关键特征的方法及装置
CN106294128B (zh) 一种导出报表数据的自动化测试方法及装置
CN110765750A (zh) 报表数据录入方法及终端设备
JP6242540B1 (ja) データ変換システム及びデータ変換方法
CN108596052A (zh) 一种物品查找方法、***及终端设备
CN112559524A (zh) 一种指标数据库建立方法、装置及存储介质
CN112699142A (zh) 冷热数据处理方法、装置、电子设备及存储介质
CN113515544B (zh) 一种数据属性查询方法及数据属性查询装置
CN110569313A (zh) 数据仓库的模型表级别判定方法及装置
CN114741392A (zh) 数据查询方法、装置、电子设备及存储介质
CN113326255A (zh) 有效测试数据的筛选方法、装置、终端设备及存储介质
CN111367956A (zh) 数据统计方法及装置
CN110058992A (zh) 一种文案模板效果反馈方法、装置及电子设备
CN116228374A (zh) 物流行业市场单量数据预警方法、装置、设备及存储介质
CN110008264B (zh) 成本核算***的数据采集方法和装置
CN109885710B (zh) 基于差分演化算法的用户画像刻画方法及服务器
CN114116799A (zh) 异常交易环路的识别方法、装置、终端及存储介质
CN113806526A (zh) 特征抽取方法、设备和存储介质
CN110032564A (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