CN106446080B - 数据查询的方法、查询服务设备、客户端设备和数据系统 - Google Patents
数据查询的方法、查询服务设备、客户端设备和数据系统 Download PDFInfo
- Publication number
- CN106446080B CN106446080B CN201610812260.8A CN201610812260A CN106446080B CN 106446080 B CN106446080 B CN 106446080B CN 201610812260 A CN201610812260 A CN 201610812260A CN 106446080 B CN106446080 B CN 106446080B
- Authority
- CN
- China
- Prior art keywords
- page
- query
- data
- request
- client device
- 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 63
- 238000012545 processing Methods 0.000 claims description 8
- 238000013461 design Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 238000013459 approach Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000000977 initiatory effect 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
- 238000005192 partition Methods 0.000 description 1
- 238000006467 substitution reaction Methods 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/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
-
- 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/2453—Query 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 Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据查询的方法、查询服务设备、客户端设备和数据系统。该方法包括:接收客户端设备发送的第一查询请求,该第一查询请求包括查询条件和页面提示信息,该页面提示信息用于指示第一页面中的第一数据记录,该第一页面为满足该查询条件的至少一个数据页面中的数据页面;根据该页面提示信息,确定该第一数据记录;根据该第一数据记录和该查询条件,向该客户端设备发送该第一页面中的数据记录。本发明实施例的数据查询的方法、查询服务设备、客户端设备和数据系统,能够提高分页查询的效率。
Description
技术领域
本发明涉及信息技术领域,并且更具体地,涉及一种数据查询的方法、查询服务设备、客户端设备和数据系统。
背景技术
分页查询技术可以支持用户查看某一页面的数据记录。在目前的分页查询技术中,一种方式是将所有符合查询条件的记录先缓存在内存中,当用户再提交了某一页的查询请求之后,直接从内存中拿到用户想要的数据快速返回给用户。这种方式在查询涉及到的数据量过大,或者并发请求量过大时,对内存的压力比较大,尤其是在大数据领域内是不适用的。
另一种方式是将数据直接按照行号(ROW_NUM)进行组织排序,在查询时按照ROW_NUM快速定位到想要查询的数据。然而这种排序在很大程度上并不是用户所期望的排序,而且这种排序在大数据领域内,可能会导致数据入库性能过低,因为不能很好地将数据打散到对应的数据分区中。
因此,提高分页查询的效率成为大数据领域内亟待解决的一个技术问题。
发明内容
本发明实施例提供了一种数据查询的方法、查询服务设备、客户端设备和数据系统,能够提高分页查询的效率。
第一方面,提供了一种数据查询的方法,包括:
接收客户端设备发送的第一查询请求,该第一查询请求包括查询条件和页面提示信息,该页面提示信息用于指示第一页面中的第一数据记录,该第一页面为满足该查询条件的至少一个数据页面中的数据页面;
根据该页面提示信息,确定该第一数据记录;
根据该第一数据记录和该查询条件,向该客户端设备发送该第一页面中的数据记录。
本发明实施例的数据查询的方法,根据页面提示信息可以快速地定位到第一页面中的第一数据记录进而获取第一页面中的数据记录,实现快速地分页查询,从而能够提高分页查询的效率。
在一些可能设计中,该第一数据记录为该第一页面中的第一条数据记录。
在一些可能设计中,该第一数据记录也可以为该第一页面中的其他条数据记录,例如,最后一条记录,或者确定的某一条记录。
在一些可能设计中,根据该第一数据记录和该查询条件,向该客户端设备发送该第一页面中的数据记录,包括:
向该客户端设备发送从该第一数据记录开始的,满足该查询条件的预定数量的数据记录,该预定数量为一个页面中的数据记录的数量。
在一些可能设计中,查询服务设备可以在查询到该第一页面中的全部数据记录后,再向该客户端设备返回该第一页面中的数据记录;查询服务设备也可以在每查询到该第一页面中的一条数据记录后,就向该客户端设备返回该数据记录。
在一些可能设计中,该页面提示信息包括该第一数据记录的主键信息。
这种方式适合于按照主键查询的方式,查询服务设备可以根据该第一数据记录的主键信息快速定位到该第一数据记录。
在一些可能设计中,该页面提示信息包括该第一数据记录的主键信息和与该查询条件对应的索引信息。
这种方式适合于根据索引查询的方式,可以使查询服务设备快速地在相应的索引中定位到该第一数据记录对应的索引记录,进而得到该第一数据记录。
在一些可能设计中,该页面提示信息中的具体内容可以是该第一数据记录的信息,也可以是其他数据记录的信息,只要其他数据记录与该第一数据记录的关系确定即可。
在一些可能设计中,在接收客户端设备发送的第一查询请求之前,该方法还包括:
接收该客户端设备发送的第二查询请求,该第二查询请求包括该查询条件;
根据该第二查询请求,向该客户端设备发送满足该查询条件的至少一个数据页面的数据记录,以及向该客户端设备发送该页面提示信息。
在一些可能设计中,在向该客户端设备发送该页面提示信息之前,该方法还包括:
接收该客户端设备发送的页面提示信息请求,该页面提示信息请求用于请求该页面提示信息。
第二方面,提供了一种数据查询的方法,包括:
向查询服务设备发送第一查询请求,该第一查询请求包括查询条件和页面提示信息,该页面提示信息用于指示第一页面中的第一数据记录,该第一页面为满足该查询条件的至少一个数据页面中的数据页面;
接收该查询服务设备根据该第一查询请求发送的该第一页面中的数据记录。
本发明实施例的数据查询的方法,采用页面提示信息指示所请求页面中的第一数据记录,可以实现快速地分页查询,从而能够提高分页查询的效率。
在一些可能设计中,该第一数据记录为该第一页面中的第一条数据记录。
在一些可能设计中,该第一页面中的数据记录为从该第一数据记录开始的,满足该查询条件的预定数量的数据记录,该预定数量为一个页面中的数据记录的数量。
在一些可能设计中,该页面提示信息包括该第一数据记录的主键信息。
这种方式适合于按照主键查询的方式,查询服务设备可以根据该第一数据记录的主键信息快速定位到该第一数据记录。
在一些可能设计中,该页面提示信息包括该第一数据记录的主键信息和与该查询条件对应的索引信息。
这种方式适合于根据索引查询的方式,可以使查询服务设备快速地在相应的索引中定位到该第一数据记录对应的索引记录,进而得到该第一数据记录。
在一些可能设计中,在向查询服务设备发送第一查询请求之前,该方法还包括:
向该查询服务设备发送第二查询请求,该第二查询请求包括该查询条件;
接收该查询服务设备根据该第二查询请求发送的满足该查询条件的至少一个数据页面的数据记录;
接收该查询服务设备发送该页面提示信息;
存储该页面提示信息。
在一些可能设计中,该方法还包括:
向该查询服务设备发送页面提示信息请求,该页面提示信息请求用于请求该页面提示信息。
第三方面,提供了一种查询服务设备,包括执行第一方面或第一方面的任意可能设计中的方法的模块。
第四方面,提供了一种客户端设备,包括执行第二方面或第二方面的任意可能设计中的方法的模块。
第五方面,提供了一种查询服务设备。该查询服务设备包括处理器、存储器和通信接口。处理器与存储器和通信接口连接。存储器用于存储指令,处理器用于执行该指令,通信接口用于在处理器的控制下与其他网元进行通信。该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能设计中的方法。
第六方面,提供了一种客户端设备。该客户端设备包括处理器、存储器和通信接口。处理器与存储器和通信接口连接。存储器用于存储指令,处理器用于执行该指令,通信接口用于在处理器的控制下与其他网元进行通信。该处理器执行该存储器存储的指令时,该执行使得该处理器执行第二方面或第二方面的任意可能设计中的方法。
第七方面,提供了一种数据系统,包括:
第三方面或第五方面的查询服务设备;以及
数据库,该数据库中包括待查询的数据。
在一些可能设计中,该数据系统还包括:
第四方面或第六方面的客户端设备。
第八方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括:用于执行第一方面或第一方面的任意可能设计中的方法的指令,和/或用于执行第二方面或第二方面的任意可能设计中的方法的指令。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的应用场景的示意图。
图2是本发明一个实施例的数据查询的方法的示意性流程图。
图3是本发明另一实施例的数据查询的方法的示意性流程图。
图4是本发明一个实施例的查询服务设备的示意性框图。
图5是本发明一个实施例的客户端设备的示意性框图。
图6是本发明另一实施例的查询服务设备的结构示意图。
图7是本发明另一实施例的客户端设备的结构示意图。
图8是本发明一个实施例的数据系统的示意图。
图9是本发明另一实施例的数据系统的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
应理解,本发明实施例中,数据记录在本领域中也可以称为记录或数据。
本发明实施例的技术方案可以应用于数据系统中。图1是本发明实施例的应用场景的示意图。
在图1中,数据库103可以是分布式的,即分布于多个服务器中;数据库103也可以为单服务器式的,即位于单服务器中。
客户端设备101用于向查询服务设备102发送查询请求并接收查询服务设备102返回的查询结果。
查询服务设备102用于处理客户端设备101的查询请求并向客户端设备101返回查询结果。例如,将客户端设备101的查询请求解析、转换成数据库查询请求,以查询数据库103中的数据。查询服务设备102可以设置于单服务器中的数据库管理系统中,或者设置于分布式数据库系统中的分布式管理系统中。
应理解,客户端设备101和查询服务设备102可以是物理设备,也可以是设置于物理设备中的装置、单元或模块;另外,客户端设备101和查询服务设备102可以在同一物理设备上实现,也可以分别在不同的物理设备上实现。
图2示出了根据本发明实施例的数据查询的方法的示意性流程图。图2中的客户端设备可以为图1中的客户端设备101;查询服务设备可以为图1中的查询服务设备102。
210,客户端设备向查询服务设备发送第一查询请求。
该第一查询请求包括查询条件和页面提示信息,该页面提示信息用于指示第一页面中的第一数据记录,该第一页面为满足该查询条件的至少一个数据页面中的数据页面。
该第一查询请求用于请求该第一页面中的数据记录。也就是说,该第一查询请求为分页查询请求。在本发明实施例中,在第一查询请求中除了包括查询条件外,还包括页面提示信息,该页面提示信息用于指示第一页面中的第一数据记录,这样,查询服务设备可以根据该页面提示信息快速定位到该第一数据记录,进而得到该第一页面中的数据记录。
可选地,该第一数据记录可以为该第一页面中的第一条数据记录。
应理解,该第一数据记录也可以为该第一页面中的其他条数据记录,例如,最后一条记录,或者确定的某一条记录。
还应理解,在本发明实施例中,该页面提示信息用于指示第一页面中的第一数据记录,该页面提示信息中的具体内容可以是该第一数据记录的信息,也可以是其他数据记录的信息,只要其他数据记录与该第一数据记录的关系确定即可。例如,该页面提示信息中的具体内容可以是上一页面中的最后一条数据记录的信息,这样也可以指示下一页面中的第一条数据记录。
可选地,该页面提示信息可以包括该第一数据记录的主键(Primary Key)信息。这种方式适合于按照主键查询的方式,查询服务设备可以根据该第一数据记录的主键信息快速定位到该第一数据记录。
可选地,该页面提示信息可以包括该第一数据记录的主键信息和与该查询条件对应的索引信息。该索引信息用于确定该查询条件对应的索引。这种方式适合于根据索引查询的方式。
在数据库中存储有数据表对应的一个或多个索引时,可以采用根据索引查询的方式。索引中的索引字段可以为与数据表的主键不同的字段,索引中的其他字段可以包括主键字段。根据索引查询的方式为,根据查询条件确定待查询的索引,先在数据库中查询该索引,根据索引查询结果再在数据表中查询相应的数据记录。例如,若查询条件为“姓名为张”,若数据库中有按照姓名建立的索引,则可以先查询该索引,再根据索引查询结果,例如查询到的“张”对应的“ID”,查询数据表,获取相应的数据记录。
在根据索引查询时,数据记录的排序和分页都按照在索引中的顺序进行。在这种情况下,在页面提示信息包括该第一数据记录的主键信息和与该查询条件对应的索引信息可以使查询服务设备快速地在相应的索引中定位到该第一数据记录对应的索引记录,进而得到该第一数据记录。
220,查询服务设备根据该页面提示信息,确定该第一数据记录。
查询服务设备接收到客户端设备发送的第一查询请求后,根据该第一查询请求中的页面提示信息,确定该第一数据记录。如前所述,由于该页面提示信息指示第一页面中的第一数据记录,查询服务设备可以快速定位到该第一数据记录。
230,查询服务设备根据该第一数据记录和该查询条件,向该客户端设备发送该第一页面中的数据记录。
在确定该第一数据记录后,查询服务设备根据该第一数据记录和该查询条件,向该客户端设备返回该第一页面中的数据记录。可选地,查询服务设备可以在查询到该第一页面中的全部数据记录后,再向该客户端设备返回该第一页面中的数据记录;查询服务设备也可以在每查询到该第一页面中的一条数据记录后,就向该客户端设备返回该数据记录。
可选地,该查询服务设备可以向该客户端设备发送从该第一数据记录开始的,满足该查询条件的预定数量的数据记录,该预定数量为一个页面中的数据记录的数量。
具体而言,该查询服务设备从该第一数据记录开始,查询满足该查询条件的数据记录,并返回给该客户端设备。返回方式可以是,查询到预定数量的数据记录后,一次性返回给该客户端设备;也可以是每查询到满足该查询条件的一条数据记录后,就返回给该客户端设备,直到返回预定数量的数据记录为止。
应理解,上述从该第一数据记录开始的,满足该查询条件的预定数量的数据记录为按照查询过程先后得到的预定数量的数据记录。例如,在该第一数据记录为该第一页面中的第一条数据记录的情况下,该预定数量的数据记录为从该第一条数据记录往后查询得到的数据记录;在该第一数据记录为该第一页面中的最后第一条数据记录的情况下,该预定数量的数据记录为从该第一条数据记录往前查询得到的数据记录;在该第一数据记录为该第一页面中的确定的某一条记录的情况下,该预定数量的数据记录为从该第一条数据记录开始按照确定的查询顺序查询得到的第一页面的数据记录。
客户端设备接收到该查询服务设备根据该第一查询请求发送的该第一页面中的数据记录后,将该第一页面中的数据记录呈现给用户,从而完成分页查询。
因此,本发明实施例的数据查询的方法,采用页面提示信息指示所请求页面中的第一数据记录,可以快速地定位到该第一数据记录进而获取所请求页面中的数据记录,实现快速地分页查询,从而能够提高分页查询的效率。
在本发明实施例中,页面提示信息可以在之前的查询过程中存储到客户端设备中,以便于后续的分页查询。下面结合图3进行说明。
图3示出了根据本发明另一实施例的数据查询的方法的示意性流程图。同样地,图3中的客户端设备可以为图1中的客户端设备101;查询服务设备可以为图1中的查询服务设备102。
图3的流程可以发生在图2的流程之前。
310,客户端设备向查询服务设备发送第二查询请求。
该第二查询请求包括查询条件。
也就是说,该第二查询请求为普通的查询请求,即不是分页查询请求。
320,查询服务设备根据该第二查询请求,向该客户端设备发送满足该查询条件的至少一个数据页面的数据记录,以及向该客户端设备发送该页面提示信息。
具体而言,查询服务设备根据该第二查询请求进行查询,向该客户端设备返回满足该查询条件的数据记录。返回的数据记录或页面的数量可以基于用户的请求。例如,若返回了两个页面后,用户不在需要继续查询,则查询结束。另外,在返回该第一数据记录后,例如,返回每个页面的第一条记录后,再向该客户端设备发送页面提示信息。可选地,页面提示信息可以在该第一数据记录之后发送,也可以与该第一数据记录同时发送,本发明对此并不限定。
可选地,页面提示信息可以是主动发送,也可以是基于请求而发送。
具体地,该客户端设备先向该查询服务设备发送页面提示信息请求,该页面提示信息请求用于请求该页面提示信息;该查询服务设备接收到该客户端设备发送的页面提示信息请求后,再向该客户端设备发送该页面提示信息。
可选地,该客户端设备可以在接收到该查询服务设备发送的该第一数据记录后,向该查询服务设备发送该页面提示信息请求。
330,客户端设备存储该页面提示信息。
客户端设备接收到该查询服务设备发送的该页面提示信息后,存储该页面提示信息。这样,在后续进行分页查询时,可以将该页面提示信息包括到第一查询请求中,从而实现前述本发明实施例中的分页查询。
下面将结合具体的例子详细描述本发明实施例。应注意,这些例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
假设用户数据如下所示:
{ID=I0000,NAME=NM0000,ADDR=ADDR0000}
{ID=I0001,NAME=NM0001,ADDR=ADDR0001}
{ID=I0002,NAME=NM0002,ADDR=ADDR0002}
{ID=I0003,NAME=NM0003,ADDR=ADDR0003}
{ID=I0004,NAME=NM0004,ADDR=ADDR0004}
{ID=I0005,NAME=NM0005,ADDR=ADDR0005}
{ID=I0006,NAME=NM0006,ADDR=ADDR0006}
{ID=I0007,NAME=NM0007,ADDR=ADDR0007}
{ID=I0008,NAME=NM0008,ADDR=ADDR0008}
{ID=I0009,NAME=NM0009,ADDR=ADDR0009}
{ID=I0010,NAME=NM0010,ADDR=ADDR0010}
........................
{ID=I9998,NAME=NM9998,ADDR=ADDR9998}
{ID=I9999,NAME=NM9999,ADDR=ADDR9999}
字段ID为Primary Key,该字段可以唯一的决定一行数据记录,数据记录也可以称为记录。
查询条件(Condition)为Condition1:{ID=I00%},也就是说,ID=I0000~I0099的所有记录都是满足条件的记录。
假设每一页查询记录的条数为5。
1、客户端设备(例如可以通过其中的查询发起模块)基于查询条件Condition1:{ID=I00%}发起第1页查询时,查询服务设备根据该查询条件进行查询。例如,查询服务设备会为客户端设备初始化一个查询结果扫描器Scanner1,通过不断地调用查询结果扫描器的next(下一条)请求,返回如下五条记录:
{ID=I0000,NAME=NM0000,ADDR=ADDR0000}
{ID=I0001,NAME=NM0001,ADDR=ADDR0001}
{ID=I0002,NAME=NM0002,ADDR=ADDR0002}
{ID=I0003,NAME=NM0003,ADDR=ADDR0003}
{ID=I0004,NAME=NM0004,ADDR=ADDR0004}
客户端设备在读取第一条记录时,可通过调用查询服务设备的接口,获取第一条记录的页面提示信息(StartKeyHint):StartKeyHint_Page1,在StartKeyHint_Page1中可以包括如下信息:查询时所用到的索引信息,以及Primary Key信息{ID=I0000}。该信息被存储在客户端设备中。
查询结果扫描器的每一次next请求,指针都会移动一次。当第1页的5条记录读取完成之后,查询结果扫描器的指针定位到了第6条结果的开始位置。
假设要继续查询下一页的记录,则暂时缓存该Scanner1(否则,关闭该Scanner1,查询结束)。
2、假设基于前面的查询结果扫描器Scanner1,继续查询下5条记录的结果,即第2页的结果。通过不断地调用查询结果扫描器的next请求,返回如下五条记录:
{ID=I0005,NAME=NM0005,ADDR=ADDR0005}
{ID=I0006,NAME=NM0006,ADDR=ADDR0006}
{ID=I0007,NAME=NM0007,ADDR=ADDR0007}
{ID=I0008,NAME=NM0008,ADDR=ADDR0008}
{ID=I0009,NAME=NM0009,ADDR=ADDR0009}
客户端设备在读取第一条记录时,通过调用查询服务设备的接口,获取第一条记录的StartKeyHint信息:StartKeyHint_Page2,在StartKeyHint_Page2中可以包括如下信息:查询时所用到的索引信息,以及Primary Key信息{ID=I0005}。该信息被存储在客户端设备中。
当第2页的5条记录读取完成之后,查询结果扫描器Scanner1的指针定位到了第11条结果的开始位置。
假设要继续查询下一页的记录,则暂时缓存该Scanner1(否则,关闭该Scanner1,查询结束)。
3、假设基于前面的查询结果扫描器Scanner1,继续查询下5条记录的结果,即第3页的结果。通过不断地调用查询结果扫描器的next请求,返回如下五条记录:
{ID=I0010,NAME=NM0010,ADDR=ADDR0010}
{ID=I0011,NAME=NM0011,ADDR=ADDR0011}
{ID=I0012,NAME=NM0012,ADDR=ADDR0012}
{ID=I0013,NAME=NM0013,ADDR=ADDR0013}
{ID=I0014,NAME=NM0014,ADDR=ADDR0014}
客户端设备在读取第一条记录时,通过调用查询服务设备的接口,获取第一条记录的StartKeyHint信息:StartKeyHint_Page3,在StartKeyHint_Page3中可以包括如下信息:查询时所用到的索引信息,以及Primary Key信息{ID=I0010}。该信息被存储在客户端设备中。
当第3页的5条记录读取完成之后,查询结果扫描器Scanner1的指针定位到了第16条结果的开始位置。
如果此时不再继续查询下一页的记录,则关闭Scanner1,查询结束。
4、客户端设备基于同样的查询条件Condition1:{ID=I00%},以及分页提示信息StartKeyHint_Page2去查询已经查询过的第2页的数据。查询服务设备根据该查询条件和该分页提示信息StartKeyHint_Page2进行查询。例如,查询服务设备会为客户端设备初始化一个新的查询结果扫描器Scanner2,Scanner2在初始化时直接将指针定位在了StartKeyHint_Page2所指示的记录,即第6条记录的开始位置,从第6条记录开始,通过不断地调用查询结果扫描器的next请求,返回如下五条记录:
{ID=I0005,NAME=NM0005,ADDR=ADDR0005}
{ID=I0006,NAME=NM0006,ADDR=ADDR0006}
{ID=I0007,NAME=NM0007,ADDR=ADDR0007}
{ID=I0008,NAME=NM0008,ADDR=ADDR0008}
{ID=I0009,NAME=NM0009,ADDR=ADDR0009}
因此,通过上述方案,在查询已经查询过的页面的数据时,可以快速地定位到该页面,从而能够提高查询的效率。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上文中详细描述了根据本发明实施例的数据查询的方法,下面将描述根据本发明实施例的查询服务设备、客户端设备和数据系统。
图4示出了根据本发明实施例的查询服务设备400的示意性框图。
该查询服务设备400可以对应于各方法实施例中的查询服务设备,可以具有方法中的查询服务设备的任意功能。
如图4所示,该查询服务设备400包括:
接收模块410,用于接收客户端设备发送的第一查询请求,该第一查询请求包括查询条件和页面提示信息,该页面提示信息用于指示第一页面中的第一数据记录,该第一页面为满足该查询条件的至少一个数据页面中的数据页面;
处理模块420,用于根据该页面提示信息,确定该第一数据记录,以及根据该第一数据记录和该查询条件,确定该第一页面中的数据记录;
发送模块430,用于向该客户端设备发送该第一页面中的数据记录。
本发明实施例的查询服务设备,根据页面提示信息可以快速地定位到第一页面中的第一数据记录进而获取第一页面中的数据记录,实现快速地分页查询,从而能够提高分页查询的效率。
可选地,该第一数据记录为该第一页面中的第一条数据记录。
可选地,该发送模块430具体用于,向该客户端设备发送从该第一数据记录开始的,满足该查询条件的预定数量的数据记录,该预定数量为一个页面中的数据记录的数量。
可选地,该页面提示信息包括该第一数据记录的主键信息;或者,
该页面提示信息包括该第一数据记录的主键信息和与该查询条件对应的索引信息。
可选地,该接收模块410还用于,在接收该客户端设备发送的该第一查询请求之前,接收该客户端设备发送的第二查询请求,该第二查询请求包括该查询条件;
该处理模块420还用于,根据该第二查询请求,确定满足该查询条件的至少一个数据页面的数据记录;
该发送模块430还用于,向该客户端设备发送满足该查询条件的至少一个数据页面的数据记录,以及向该客户端设备发送该页面提示信息。
可选地,该接收模块410还用于,接收该客户端设备发送的页面提示信息请求,该页面提示信息请求用于请求该页面提示信息。
根据本发明实施例的查询服务设备400可对应于根据本发明实施例的数据查询的方法中的查询服务设备,并且查询服务设备400中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。
图5示出了根据本发明实施例的客户端设备500的示意性框图。
该客户端设备500可以对应于各方法实施例中的客户端设备,可以具有方法中的客户端设备的任意功能。
如图5所示,该客户端设备包括:
发送模块510,用于向查询服务设备发送第一查询请求,该第一查询请求包括查询条件和页面提示信息,该页面提示信息用于指示第一页面中的第一数据记录,该第一页面为满足该查询条件的至少一个数据页面中的数据页面;
接收模块520,用于接收该查询服务设备根据该第一查询请求发送的该第一页面中的数据记录。
本发明实施例的客户端设备,采用页面提示信息指示所请求页面中的第一数据记录,可以实现快速地分页查询,从而能够提高分页查询的效率。
可选地,该第一数据记录为该第一页面中的第一条数据记录。
可选地,该第一页面中的数据记录为从该第一数据记录开始的,满足该查询条件的预定数量的数据记录,该预定数量为一个页面中的数据记录的数量。
可选地,该页面提示信息包括该第一数据记录的主键信息;或者,
该页面提示信息包括该第一数据记录的主键信息和与该查询条件对应的索引信息。
可选地,该发送模块510还用于,在向该查询服务设备发送该第一查询请求之前,向该查询服务设备发送第二查询请求,该第二查询请求包括该查询条件;
该接收模块520还用于,接收该查询服务设备根据该第二查询请求发送的满足该查询条件的至少一个数据页面的数据记录,以及接收该查询服务设备发送该页面提示信息;
该客户端设备500还包括:
处理模块530,用于存储该页面提示信息。
可选地,该发送模块510还用于,向该查询服务设备发送页面提示信息请求,该页面提示信息请求用于请求该页面提示信息。
根据本发明实施例的客户端设备500可对应于根据本发明实施例的数据查询的方法中的客户端设备,并且客户端设备500中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。
图6示出了本发明的又一实施例提供的查询服务设备的结构,包括至少一个处理器602(例如CPU),至少一个网络接口605或者其他通信接口,存储器606,和至少一个通信总线603;通信总线603用于实现这些部件之间的连接通信。处理器602用于执行存储器606中存储的可执行模块,例如计算机程序。存储器606可能包含高速随机存取存储器(RandomAccess Memory,RAM),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口605(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。
在一些实施方式中,存储器606存储了程序6061,处理器602执行程序6061,用于执行前述本发明实施例的各个方法。
图7示出了本发明的又一实施例提供的客户端设备的结构,包括至少一个处理器702(例如CPU),至少一个网络接口705或者其他通信接口,存储器706,和至少一个通信总线703;通信总线703用于实现这些部件之间的连接通信。处理器702用于执行存储器706中存储的可执行模块,例如计算机程序。存储器706可能包含高速随机存取存储器(RandomAccess Memory,RAM),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口705(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。
在一些实施方式中,存储器706存储了程序7061,处理器702执行程序7061,用于执行前述本发明实施例的各个方法。
本发明实施例还提供了一种数据系统。如图8所示,数据系统800包括:
查询服务设备810,该查询服务设备810可以是前述本发明实施例中的查询服务设备;以及
数据库820,该数据库820中包括待查询的数据。
该实施例中的数据系统可以对应于图1中的查询服务设备102和数据库103组成的数据系统,用于处理客户端设备的查询请求并向客户端设备返回查询结果。
可选地,如图9所示,该数据系统800还可以包括:
客户端设备830,该客户端设备830可以是前述本发明实施例中的客户端设备。
该实施例中的数据系统可以对应于图1中的客户端设备101、查询服务设备102和数据库103组成的数据系统。
应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种数据查询的方法,其特征在于,包括:
接收客户端设备发送的第一查询请求,所述第一查询请求包括查询条件和页面提示信息,所述页面提示信息包括第一页面的上一个页面中的最后一条数据记录的主键信息,所述页面提示信息还包括与所述查询条件对应的索引信息,所述第一页面和所述上一个页面为满足所述查询条件的至少一个数据页面中的数据页面;
根据所述页面提示信息,确定第一数据记录以得到所述第一页面中的其他数据记录;
根据所述第一数据记录和所述查询条件,向所述客户端设备发送所述第一页面中的数据记录;
其中,所述根据所述第一数据记录和所述查询条件,向所述客户端设备发送所述第一页面中的数据记录,包括:
从所述第一数据记录开始,查询满足所述查询条件的预定数量的数据记录,并向所述客户端设备发送所述满足所述查询条件的预定数量的数据记录,所述预定数量为一个页面中的数据记录的数量。
2.根据权利要求1所述的方法,其特征在于,在所述接收客户端设备发送的第一查询请求之前,所述方法还包括:
接收所述客户端设备发送的第二查询请求,所述第二查询请求包括所述查询条件;
根据所述第二查询请求,向所述客户端设备发送满足所述查询条件的至少一个数据页面的数据记录,以及向所述客户端设备发送所述页面提示信息。
3.根据权利要求2所述的方法,其特征在于,在所述向所述客户端设备发送所述页面提示信息之前,所述方法还包括:
接收所述客户端设备发送的页面提示信息请求,所述页面提示信息请求用于请求所述页面提示信息。
4.一种数据查询的方法,其特征在于,包括:
向查询服务设备发送第一查询请求,所述第一查询请求包括查询条件和页面提示信息,所述页面提示信息包括第一页面的上一个页面中的最后一条数据记录的主键信息,所述第一页面和所述上一个页面为满足所述查询条件的至少一个数据页面中的数据页面,所述页面提示信息还包括与所述查询条件对应的索引信息;
接收所述查询服务设备根据所述第一查询请求发送的所述第一页面中的数据记录,其中,所述第一页面中的数据记录为所述查询服务设备从第一数据记录开始查询得到的满足所述查询条件的预定数量的数据记录,所述预定数量为一个页面中的数据记录的数量。
5.根据权利要求4所述的方法,其特征在于,在所述向查询服务设备发送第一查询请求之前,所述方法还包括:
向所述查询服务设备发送第二查询请求,所述第二查询请求包括所述查询条件;
接收所述查询服务设备根据所述第二查询请求发送的满足所述查询条件的至少一个数据页面的数据记录;
接收所述查询服务设备发送所述页面提示信息;
存储所述页面提示信息。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
向所述查询服务设备发送页面提示信息请求,所述页面提示信息请求用于请求所述页面提示信息。
7.一种查询服务设备,其特征在于,包括:
接收模块,用于接收客户端设备发送的第一查询请求,所述第一查询请求包括查询条件和页面提示信息,所述页面提示信息包括第一页面的上一个页面中的最后一条数据记录的主键信息,所述页面提示信息还包括与所述查询条件对应的索引信息,所述第一页面和所述上一个页面为满足所述查询条件的至少一个数据页面中的数据页面;
处理模块,用于根据所述页面提示信息,确定第一数据记录,以及根据所述第一数据记录和所述查询条件,确定所述第一页面中的数据记录以得到所述第一页面中的其他数据记录;
发送模块,用于从所述第一数据记录开始查询满足所述查询条件的预定数量的数据记录并向所述客户端设备发送所述满足所述查询条件的预定数量的数据记录,所述预定数量为一个页面中的数据记录的数量。
8.根据权利要求7所述的查询服务设备,其特征在于,
所述接收模块还用于,在接收所述客户端设备发送的所述第一查询请求之前,接收所述客户端设备发送的第二查询请求,所述第二查询请求包括所述查询条件;
所述处理模块还用于,根据所述第二查询请求,确定满足所述查询条件的至少一个数据页面的数据记录;
所述发送模块还用于,向所述客户端设备发送满足所述查询条件的至少一个数据页面的数据记录,以及向所述客户端设备发送所述页面提示信息。
9.根据权利要求8所述的查询服务设备,其特征在于,所述接收模块还用于,接收所述客户端设备发送的页面提示信息请求,所述页面提示信息请求用于请求所述页面提示信息。
10.一种客户端设备,其特征在于,包括:
发送模块,用于向查询服务设备发送第一查询请求,所述第一查询请求包括查询条件和页面提示信息,所述页面提示信息包括第一页面的上一个页面中的最后一条数据记录,所述页面提示信息还包括与所述查询条件对应的索引信息,所述第一页面和所述上一个页面为满足所述查询条件的至少一个数据页面中的数据页面;
接收模块,用于接收所述查询服务设备根据所述第一查询请求发送的所述第一页面中的数据记录,所述第一页面中的数据记录为所述查询服务设备从第一数据记录开始查询得到的满足所述查询条件的预定数量的数据记录,所述预定数量为一个页面中的数据记录的数量。
11.根据权利要求10所述的客户端设备,其特征在于,
所述发送模块还用于,在向所述查询服务设备发送所述第一查询请求之前,向所述查询服务设备发送第二查询请求,所述第二查询请求包括所述查询条件;
所述接收模块还用于,接收所述查询服务设备根据所述第二查询请求发送的满足所述查询条件的至少一个数据页面的数据记录,以及接收所述查询服务设备发送所述页面提示信息;
所述客户端设备还包括:
处理模块,用于存储所述页面提示信息。
12.根据权利要求11所述的客户端设备,其特征在于,所述发送模块还用于,向所述查询服务设备发送页面提示信息请求,所述页面提示信息请求用于请求所述页面提示信息。
13.一种数据系统,其特征在于,包括:
根据权利要求8至9中任一项所述的查询服务设备;以及
数据库,所述数据库中包括待查询的数据。
14.根据权利要求13所述的数据系统,其特征在于,所述数据系统还包括:
根据权利要求10至12中任一项所述的客户端设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610812260.8A CN106446080B (zh) | 2016-09-09 | 2016-09-09 | 数据查询的方法、查询服务设备、客户端设备和数据系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610812260.8A CN106446080B (zh) | 2016-09-09 | 2016-09-09 | 数据查询的方法、查询服务设备、客户端设备和数据系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106446080A CN106446080A (zh) | 2017-02-22 |
CN106446080B true CN106446080B (zh) | 2021-08-13 |
Family
ID=58164326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610812260.8A Active CN106446080B (zh) | 2016-09-09 | 2016-09-09 | 数据查询的方法、查询服务设备、客户端设备和数据系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106446080B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107798135B (zh) * | 2017-11-22 | 2020-06-16 | 阿里巴巴集团控股有限公司 | 分页查询方法及装置和电子设备 |
WO2021087679A1 (zh) * | 2019-11-04 | 2021-05-14 | 深圳市欢太科技有限公司 | 分页数据查询方法、装置、电子设备以及存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6654734B1 (en) * | 2000-08-30 | 2003-11-25 | International Business Machines Corporation | System and method for query processing and optimization for XML repositories |
CN101216840A (zh) * | 2008-01-21 | 2008-07-09 | 金蝶软件(中国)有限公司 | 一种数据查询方法和一种数据查询系统 |
CN102289473B (zh) * | 2011-07-27 | 2013-03-13 | 迈普通信技术股份有限公司 | 一种多服务器分页查询的装置及方法 |
CN103425708A (zh) * | 2012-05-25 | 2013-12-04 | 金蝶软件(中国)有限公司 | 一种优化的web分页查询方法及装置 |
CN102880685B (zh) * | 2012-09-13 | 2015-06-24 | 北京航空航天大学 | 一种时间密集大数据量的b/s分区间分页查询方法 |
CN103778135B (zh) * | 2012-10-18 | 2018-01-02 | 厦门雅迅网络股份有限公司 | 一种实时数据的分布存储和分页查询方法 |
CN103530378B (zh) * | 2013-10-15 | 2017-01-18 | 福建榕基软件股份有限公司 | 数据分页查询与数据库的构建的方法与装置 |
CN104123340B (zh) * | 2014-06-25 | 2018-04-20 | 世纪禾光科技发展(北京)有限公司 | 一种数据库分表分页查询方法及系统 |
CN104298788B (zh) * | 2014-11-13 | 2017-12-12 | 中国建设银行股份有限公司 | 一种分页查询方法和系统 |
CN105653537B (zh) * | 2014-11-13 | 2020-04-17 | 阿里巴巴集团控股有限公司 | 一种数据库应用系统的分页查询方法和装置 |
CN105354256A (zh) * | 2015-10-22 | 2016-02-24 | 浪潮电子信息产业股份有限公司 | 一种数据分页查询的方法及装置 |
-
2016
- 2016-09-09 CN CN201610812260.8A patent/CN106446080B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106446080A (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106933854B (zh) | 短链接处理方法、装置及服务器 | |
JP6626211B2 (ja) | ショートリンクを処理する方法及び装置並びにショートリンクサーバ | |
CN108140050B (zh) | 一种使用布隆过滤器过滤文件的方法及装置 | |
CN106326309B (zh) | 一种数据查询方法和装置 | |
CN108228799B (zh) | 对象索引信息的存储方法及装置 | |
CN103970870A (zh) | 数据库查询方法和服务器 | |
CN111767314A (zh) | 数据缓存及查询方法、装置、懒缓存系统及存储介质 | |
CN108319608A (zh) | 访问日志存储查询的方法、装置及系统 | |
CN105117489B (zh) | 一种数据库管理方法、装置及电子设备 | |
CN106446080B (zh) | 数据查询的方法、查询服务设备、客户端设备和数据系统 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN110928900B (zh) | 多表数据的查询方法、装置、终端以及计算机存储介质 | |
CN109213972B (zh) | 确定文档相似度的方法、装置、设备和计算机存储介质 | |
CN111858581B (zh) | 一种分页查询的方法、装置、存储介质和电子设备 | |
CN111159131A (zh) | 性能优化方法、装置、设备及计算机可读存储介质 | |
CN107070987B (zh) | 用于分布式对象存储系统的数据获取方法及系统 | |
CN108376054B (zh) | 一种对标识数据进行索引的处理方法及装置 | |
CN110888840A (zh) | 分布式文件系统中的文件查询方法、装置、设备及介质 | |
CN109800273A (zh) | 一种数据处理的方法、装置、计算机存储介质及终端 | |
CN111339170A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN111143340B (zh) | 一种数据处理方法、装置及服务器、客户端 | |
CN110765125A (zh) | 一种存储数据的方法及装置 | |
CN112446812B (zh) | 一种基于区块链的政务信息自动推送方法及终端 | |
CN114490719A (zh) | 一种数据查询方法、装置、电子设备以及存储介质 | |
CN113032820A (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 |
Effective date of registration: 20220207 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |