CN104268295B - 一种数据查询方法及装置 - Google Patents

一种数据查询方法及装置 Download PDF

Info

Publication number
CN104268295B
CN104268295B CN201410579108.0A CN201410579108A CN104268295B CN 104268295 B CN104268295 B CN 104268295B CN 201410579108 A CN201410579108 A CN 201410579108A CN 104268295 B CN104268295 B CN 104268295B
Authority
CN
China
Prior art keywords
data
storage
predetermined order
primary sources
order rule
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410579108.0A
Other languages
English (en)
Other versions
CN104268295A (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 CN201410579108.0A priority Critical patent/CN104268295B/zh
Publication of CN104268295A publication Critical patent/CN104268295A/zh
Application granted granted Critical
Publication of CN104268295B publication Critical patent/CN104268295B/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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据查询方法及装置,涉及数据库应用技术领域,在对通过多表存储的数据进行查询时,提高了数据查询效率。本发明的具体实施例包括:根据用户输入的查询请求,从单表缓存器存储的数据中获取第一类数据,进而按照预设排序规则从第一类数据中获取第一数据,其中,第一类数据包括的数据个数与存储表的个数相同,且第一类数据中的每一条数据与一个存储表对应。通过每一个存储表中获取一个数据,这些数据组成第一类数据,进而从该第一类数据中获取一个第一数据。本发明提供的技术方案主要应用于海量数据的查询流程中。

Description

一种数据查询方法及装置
技术领域
本发明涉及数据库应用技术领域,尤其涉及一种数据查询方法及装置。
背景技术
随着应用软件的发展,大型的应用系统相应而生,而在这些大型的应用系统中,需要处理的数据量也越来越大。当数据量很大时,会通过分表的方式对这些数据进行存储,即通过多表存储这些同类的数据。比如,当需要存储1000万的数据,可以采用10张表存储数据,这样一张表也就只存储100万条数据。
上述方法实现了海量数据的存储,进而在对多表数据进行查询时,现有技术可以基于时间对数据进行分区从而通过多表存储,进而基于时间对数据进行分区查询,但是这样在查询数据时就必须要求存储数据包含时间属性,所能对应的实际应用很狭窄,对于不包含时间属性的数据查询效率很低。所以在通过多表存储数据时,迫切需要一种新数据查询方案来提高数据查询效率。
发明内容
本发明的实施例提供一种数据查询方法及装置,在对通过多表存储的数据进行查询时,提高了数据查询效率。
为达到上述目的,本发明的实施例采用如下技术方案:
一种数据查询方法,所述方法应用于多表存储数据的分页查询,所述方法包括:
根据用户输入的查询请求,从单表缓存器存储的数据中获取第一类数据,所述第一类数据包含的数据个数与存储表的个数相同,且第一类数据中的每一条数据对应一个所述存储表;
按照预设排序规则从所述第一类数据中获取第一数据;
所述预设排序规则用于对所述第一类数据进行排序,所述第一数据为满足所述查询请求和所述预设排序规则的最优数据。
一种数据查询装置,所述装置用于实现多表存储数据的分页查询,所述装置包括:
获取单元,用于根据用户输入的查询请求,从单表缓存单元存储的数据中获取第一类数据,所述第一类数据包含的数据个数与存储表的个数相同,且第一类数据中的每一条数据对应一个所述存储表;
所述获取单元还用于,按照预设排序规则从所述第一类数据中获取第一数据;
所述预设排序规则用于对所述第一类数据进行排序,所述第一数据为满足所述查询请求和所述预设排序规则的最优数据。
本发明实施例提供的一种数据查询方法及装置,应用于多表存储数据的分页查询,首先根据用户输入的查询请求,从单表缓存器存储的数据中获取第一类数据,进而按照预设排序规则从第一类数据中获取第一数据,其中,第一类数据包括的数据个数与存储表的个数相同,且第一类数据中的每一条数据与一个存储表对应。通过每一个存储表中获取一个数据,这些数据组成第一类数据,进而从该第一类数据中获取一个第一数据,与现有技术中,只能按照时间分区来查询数据相比,本发明实施例不仅扩大了数据查询的适用范围,在对通过多表存储的数据进行查询时,提高了数据查询效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种数据查询的方法流程图;
图2为本发明另一实施例提供的一种数据查询的方法流程图;
图2-1为本发明另一实施例提供的另一种数据查询的方法流程图;
图3-1为本发明另一实施例提供的一种数据查询的方法流程图;
图3-2为本发明另一实施例提供的一种数据查询的方法流程图;
图4为本发明另一实施例提供的一种数据查询的方法流程图;
图5为本发明一实施例提供的一种数据查询装置的组成示意图;
图6为本发明一实施例提供的另一种数据查询装置的组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明一实施例提供了一种数据查询方法,该方法应用于多表存储数据的分页查询,如图1所示,该方法包括:
101、单表查询管理器根据用户输入的查询请求,从单表缓存器存储的数据中获取第一类数据。
其中,第一类数据包含的数据个数与存储表的个数相同,且第一类数据中的每一条数据对应一个存储表,每个存储表对应一个单表查询管理器和一个单表缓存器。
值得说明的是,该查询请求中包括查询数据的关键字,以及查询的数据量,在本实施例中,用户一次请求查询的数据量为一页的数据量。
102、多表查询管理器按照预设排序规则从第一类数据中获取第一数据。
其中,多表查询管理器用于组织和调度多个单表查询管理器。预设排序规则用于对第一类数据进行排序,该第一数据为满足查询请求和预设排序规则的最优数据。
结合上述描述,该预设排序规则可以由用户确定,预设排序规则用于对该第一类数据进行排序,进而选取该排序后的指定位序的数据作为该第一数据,比如,在对第一类数据都包含年龄属性,通过该预设排序规则按照年龄属性对该第一类数据进行升序排列,则排在首位的是年龄最小所对应的数据,则该数据为第一数据。本发明实施例对该第一数据的选取规则不做限定。
结合上述步骤101中的描述,根据对查询请求的描述,请求查询的数据量为一页的数据量,而该第一数据为构成该页数据的第一个数据。
此外值得说明的是,在本实施例中,单表查询管理器、单表缓存器、多表查询管理器为逻辑器件,本发明实施例提供的数据查询方法应用于至少集成上述三种逻辑器件的终端或服务器。
本发明实施例提供了一种数据查询方法,该方法应用于多表存储数据的分页查询,首先根据用户输入的查询请求,从单表缓存器存储的数据中获取第一类数据,进而按照预设排序规则从第一类数据中获取第一数据,其中,第一类数据包括的数据个数与存储表的个数相同,且第一类数据中的每一条数据与一个存储表对应。通过每一个存储表中获取一个数据,这些数据组成第一类数据,进而从该第一类数据中获取一个第一数据,与现有技术中,只能按照时间分区来查询数据相比,本发明实施例不仅扩大了数据查询的适用范围,在对通过多表存储的数据进行查询时,提高了数据查询效率。
在本发明实施例的一种实现方式中,就如何根据用户输入的查询请求,从单表缓存器存储的数据中获取第一类数据,进行了详细描述,即对上述步骤101中描述的流程作了具体说明,如图2所示,这一详细流程包括:
201、单表数据库查询器根据查询请求,按照预设排序规则从每个存储表中获取预设数量数据。
本步骤中涉及的查询请求与上述步骤101对查询请求的描述相同,至此不在重复说明。
其中,预设数量数据通过单表缓存器存储,预设排序规则用于对存储表中的数据进行排序,从而在排序后的数据中获取与预设数据量相同个数的数据,排序规则可以是参照数据的某一属性,进而按照该属性的升序或者降序对存储表中的数据进行排序,本实施例中,对预设排序规则的具体表现形式不做限定。
值得说明的是,本步骤中获取的预设数量的数据与上述查询请求中请求获取的数据量是相对应的,在本实施例中,该预设数据量大于请求查询的数据量,此外,为了能够再读取下一页数据时,能够直接从已缓存的数据中读取,该预设数据量为请求查询数据量的两倍。
202、单表数据库查询器按照预设排序规则从每个单表缓存器存储的数据中获取一个第一类子数据。
其中,所有第一类子数据组成第一类数据,预设排序规则用于对存储表和单表缓存器存储中的数据进行排序。
在本发明实施例的另一种实现方式中,提供了一种存储表的创建流程,由于本发明是在多表存储数据的基础上,对多表数据进行分页查询的方案,则在执行上述步骤101之前,还需要创建多个存储表来存储数据,该流程具体包括如下两个步骤:
第一步:通过数据库定义器创建存储表。
在本步骤中,创建的存储表的个数至少为2个。
第二步:将数据库中待缓存数据存储到存储表中,每个存储表中存储的数据量大于查询请求中请求查询的数据量。
结合上述步骤描述,每个存储表对应一个单表缓存器,该单表缓存器用于存储该存储表中的部分或全部数据,则该存储表中的数据的数据量至少大于请求查询的数据量,或者大于请求查询数据量的两倍。
进一步的在存储表中根据查询请求查询数据时,采用多任务、异步的方式对多表查询,这样比只采用一个任务进行查询速度将有明显的提升,这里两种查询方式的数据总量是一样的。
在本发明实施例的另一种实现方式中,描述了获取到第一数据之后的执行流程,即在执行完上述步骤102之后,该方法还包括获取第一页数据中其余数据的流程,如图2-1所示,该流程包括:
2011、在第一数据对应的单表缓存器中将第一数据删除。
2012、单表查询管理器从第一数据对应的单表缓存器中获取一个第二类子数据。
其中,第二类子数据与第一数据之外的第一类数据中其余第一类子数据组成第二类数据。比如,第一类子数据包括m、n、k…等十条数据,根据预设排序规则得到的第一数据为m,且该数据m所属单表缓存器为M,则在该M中将m删除,并从M中获取数据m1,该数据m1即为第二类子数据,该m1与上述第一类数据中除m之外的其它9个数据组成新的第二类数据。
值得说明的是,该获取第二类子数据的方法与上述步骤2012中描述的获取第一类子数据的方法相同,在此不再重复说明。
2013、多表查询管理器按照预设排序规则,从第二类数据中获取第二数据。
其中,第二数据为在第二类数据中满足查询请求和预设排序规则的最优数据,该第二数据的获取方式与获取第一数据的方式相同,在此不再重复说明。
在获取到该第二数据后,重复执行上述如图2-1所示的流程,直到获取到该查询请求中所要查询到的数据量为止,即完成第一页数据查询。比如,第一页数据的数据量为10个,则需要重复执行上述获取第二数据的流程,直到获取到第十个数据。
值得说明的是,在从单表缓存器中查询并获取数据过程中,检测该单表缓存器存储数据的数据量,当单表缓存器存储的数据的数据量,小于查询请求中请求查询的数据量时,从数据库中获取新的待缓存数据,以使得单表缓存器存储的数据的数据量,大于查询请求中请求查询的数据量。
此外值得说明的是,上述如图1、2、2-1所示的方法流程,实现的是第一次或者是第一页数据的查询,当用户进行第二页数据查询时,其具体的查询流程与上述第一页数据查询流程相似,本发明实施例对此不再重复说明。
本发明另一实施例提供了一种数据查询的方法,这一方法可以应用于具体的数据查询流程中,且可以通过下述六种职能模块来实现,包括:数据库定义模块01、单表数据查询模块02、单表任务缓存模块03、单表查询管理模块04、多表查询管理模块05、分页查询管理模块06。
其中,数据库定义模块01,用于定义存储数据的多张表,该数据库定义模块可以集成数据库存储功能,这些数据库可以是ORACLE、MYSQL或者其它的数据库。
在本实施例中,以该数据库定义模块定义n张表进行存储数据为例进行说明。
单表数据查询模块02,用于对多表进行分页查询,该模块还用于针对每一张表构建单表数据查询任务。在具体的实现过程中,数据查询是需要到数据库中去查询,进而通过该模块的查询,能够从数据库中查找指定条数的数据。
在本实施例中,以查找到的数据量为分页条数或者分页条数的两倍为例进行说明,比如,每个分页的条数为10,则通过该模块查找到的数据量可以为10或者20条数据,本实施例对查找数据的具体数目不做限定。
单表数据缓存模块03,用于缓存通过上述单表数据查询模块02查找到的数据。
结合上述对查找数据量的描述,在本发明的一种可选实现方式中,在用户进行翻页时,为了能够更快地向用户返回数据,在用户进行翻页查找时,不再从数据库中查询数据,而是从缓存中直接读取数据,所以这里缓存的数据为每页条数到每页条数的两倍的数据量。
通过对上述模块02、模块03的描述,定义了如何查询数据库、如何为了提高效率而建立缓存,而如何对这些模块进行管理和调度将通过下述的单表查询管理模块04来实现。
单表查询管理模块04,用于在单表数据查询过程中,对上述的模块02和模块03进行管理和调度。
多表查询管理模块05,用于对管理单表查询管理模块,以完成多表数据的整合。
分页查询管理模块06,用于提供查询访问接口,接收使用方输入的查询请求。
结合上述对各职能模块所能实现的功能的描述,进而通过这些职能模块完成多表的海量数据分页查询数据访问。在本实施例中,描述的数据查询流程包括两个方面:
一方面是第一次查询,也就是查询第一页数据;另一方面是非第一数据的翻页查询过程。值得说明的是,对于跳页翻页查询流程在本实例中不做说明。
首先,结合上述职能模块的描述,在本实施例中将详细描述如何实现第一页数据查询,且在本实施例中,为了便于描述,以数据库定义模块定义了n张表存储数据,且要查询的每页数据大小为20条记录为例进行说明。如图3-1所示,这一查询流程包括:
301、通过分页查询管理模块接收用户输入的查询条件,并根据该查询条件构建多表数据查询对象,并发起对第一页数据的查询。
302、多表查询管理模块分别初始化单表查询对象。
值得说明的是,单表查询对象与存储表一一对应,则在本实施例中包含n个单表查询对象,且在单表查询对象创建后,异步调用单表查询对象进行第一次数据查询,查询数据量为每页记录数的两倍即40条。
303、多表查询管理模块将初始化的单表查询对象告知单表查询管理模块,并通过单表查询管理模块启动第一页数据的查询。
304、单表查询管理模块向数据库定义模块提交查询请求。
其中,该查询请求中包括通过步骤201得到的查询条件、以及本次查询数据的数量,结合上述描述,本实施例以查询第一页数据为例描述,则在本实施例中首次查询只包含数据库中的前40条数据,进一步的数据库返回查询结果后执行下述步骤305。
305、单表数据缓存模块缓存查询得到的数据。
值得说明的是,重复执行上述步骤304、305,直到所有的单表查询任务结束后,此时获取所有缓存的数据,结合上述描述,获取到的缓存数据量为40*n条记录,进而执行下述步骤306。
306、多表查询管理模块从缓存数据中获取预设数据量的数据。
结合本实施例的前述描述,本实施例执行第一页数据的查询,则其中预设数据量的数据指第一页数据的数据量,且结合上述的实例描述,指从这40*n条数据中查询到合乎规则的20条数据。
值得说明的是,在该缓存数据中查询获取预设数量的数据过程中,其查询方式是根据排序的数据,通过比较大小的方式得出,比如可以按数据的某一属性的升序或者降序排列,则此时通过比较这一属性所对应的参数的大小得出最终的排序数据。进一步的在获取到满足条件的数据之后,并从缓存中删除这20条数据。并返回20条数据作为第一页的数据,当前查询第一页的数据将在后面做详细的描述。
在多表数据查询管理模块从缓存数据中查找获取满足条件的数据时,如图3-2所示,具体包括如下执行步骤:
a、从每一个单表的缓存中获取第一类数据。
其中,第一类数据为从每个单表缓存的40个数据中获取一条数据记录,而对于该条数据记录在该存储表中的位置,本实施例不做限定。比如,该第一类数据为按照用户的查询请求,对数据进行排列后排在首位的数据,再从每个表中获取到与该表对应的第一类数据后,在本实施例中,最终会获取到n条数据组成该第一类数据。
b、将a中获取到的n条数据按预设排序规则进行排序,获取到第一数据。
结合对步骤a的描述,在该步骤b的执行过程中,即对n条数据按照一定规则进行排序,进而从这n条数据中获取一个数据,即为第一数据。
值得说明的是,本实施例中对该n条数据的排序规则不做限定,比如,可以是按照该n条数据的某一属性的升序或者降序排列等。
c、在第一数据的存储表中将该第一数据删除。
d、在第一数据所在存储表中再次读取下一条数据。
值得说明的书,该获取下一条数据的获取规则与上述步骤a中获取第一类数据的获取规则相同,即在该表中再次获取出属于第一类条数据之外的其余数据中的一条。
e、按照上述b的获取第一数据方式获取第二数据。
在该步骤c的具体实现过程中,即将通过步骤d获取的下一条数据,以及通过步骤a获取到的除第一数据之外的其余(n-1)条数据,共同组成新的n条数据,可看作为第二类数据,进而从该新的n条数据中按照上述获取第一数据的方式,再获取第二数据。
f、按照步骤c的执行方式,在第二数据删除对应的单表缓存中的这一条数据。
值得结合上述通过步骤b-f所得到的数据,已记录得到2条数据,在请求查询第一页数据时,该两条数据用于组成该第一页数据。
g、按照上述步骤d的执行方式,再从第二数据所在表中再次读取下一条数据。
结合上述步骤的描述,在后续执行过程中重复上述步骤b-g,直到最后获取到请求第一页数据请求获取的数据量,比如记录满20条数据后返回该第一页数据。
值得说明的是,在执行上述步骤306的过程中,在从单表缓存数据中获取数据时,会存在检测到的单表缓存数据不足第一页数据量的情况,比如当第一页数据量为20条数据时,即20条是每页的显示数据,为了保证每次读取下一页的数据都可以从缓存中读取,则单表缓存数据不能少于20条,而当少于20条数据时,就需要重新启动查询任务,从数据库查询并缓存后面的20条数据,使得单表数据缓存能够达到40条。但是,如果数据库已经查询完成所有数据,将不在启动当前单表的查询任务。
在本发明实施例的一种实现方式中还提供了查询下一页数据的执行流程,器具体查询流程与查询第一页数据类似,但是在查询除第一页数据之外的下一页数据时,可以直接从缓存中读取数据,从而能够加快数据的读取速度,提高用户体验。在本实现方式中,仍然以每页数据包含20条记录为例进行说明。
如图4所示,该下一页数据的查询流程包括:
401、通过分页查询管理器向多表查询管理器中查询下一页的数据。
在查询下一页数据时,通过执行上述401,得出20条数据,组织成数据列表返回,同时启动单表缓存检测,即执行下述402。
402、循环检测每个单表的缓存数据。
值得说明的是,如果缓存数据不足20条时重新从数据库中获取数据,即执行下述步骤403。
403、从数据库查询并缓存已获取数据后面的20条数据。
在执行上述403过程中,当数据库已经查询完成所有数据,将不在启动当前单表的查询任务。
本发明另一实施例提供了一种数据查询装置,该装置用于实现多表存储数据的分页查询,如图5所示,该装置包括:获取单元51、单表缓存单元52。
获取单元51,用于根据用户输入的查询请求,从单表缓存单元52存储的数据中获取第一类数据。
单表缓存单元52,用于保存存储表中的数据。
其中,第一类数据包含的数据个数与存储表的个数相同,且第一类数据中的每一条数据对应一个存储表。
获取单元51,还用于按照预设排序规则从第一类数据中获取第一数据。
其中,预设排序规则用于对第一类数据进行排序,第一数据为满足查询请求和预设排序规则的最优数据。
在该查询装置的一种可选构成方式中,如图6所示,获取单元51包括:第一获取子单元511、第二获取子单元512;该装置还包括:存储表创建单元53、数据存储单元54、删除单元55。
第一获取子单元511,用于根据查询请求,按照预设排序规则从每个存储表中获取预设数量数据。
其中预设数量数据通过单表缓存单元52存储。
第二获取子单元512,用于按照预设排序规则从第一获取子单元511获取的数据中获取一个第一类子数据。
其中,预设排序规则用于对存储表和单表缓存单元52存储中的数据进行排序。
值得说明的是,所有第一类子数据组成第一类数据。
存储表创建单元53,用于在获取单元51获取第一类数据之前,创建存储表。
其中,创建的存储表的个数至少为2个。
数据存储单元54,用于将数据库中待缓存数据存储到存储表创建单元53创建的存储表中。
在本实施例中,每个存储表中存储的数据量大于查询请求中请求查询的数据量。
删除单元55,用于在获取单元52获取到第一类数据之后,在第一数据对应的单表缓存单元52中将第一数据删除。
获取单元51,还用于从第一数据对应的单表缓存单元52中获取一个第二类子数据,还用于按照预设排序规则,从第二类数据中获取第二数据。
其中,第二类子数据,与除第一数据之外的第一类数据中其余第一类子数据组成第二类数据,第二数据为在第二类数据中满足查询请求和预设排序规则的最优数据。
获取单元51,还用于当单表缓存单元52存储的数据的数据量,小于查询请求中请求查询的数据量时,从数据库中获取新的待缓存数据,以使得单表缓存单元52存储的数据的数据量,大于查询请求中请求查询的数据量。
本实施例中的如图5、6所示的装置,用于实现上述如图1至图4所示的方法流程。
本发明实施例提供了一种数据查询装置,该装置用于实现多表存储数据的分页查询,首先获取单元根据用户输入的查询请求,从单表缓存单元存储的数据中获取第一类数据,进而按照预设排序规则从第一类数据中获取第一数据,其中,第一类数据包括的数据个数与存储表的个数相同,且第一类数据中的每一条数据与一个存储表对应。通过每一个存储表中获取一个数据,这些数据组成第一类数据,进而从该第一类数据中获取一个第一数据,与现有技术中,只能按照时间分区来查询数据相比,本发明实施例不仅扩大了数据查询的适用范围,在对通过多表存储的数据进行查询时,提高了数据查询效率。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (6)

1.一种数据查询方法,其特征在于,所述方法应用于多表存储数据的分页查询,所述方法包括:
根据用户输入的查询请求,从单表缓存器存储的数据中获取第一类数据,所述第一类数据包含的数据个数与存储表的个数相同,且第一类数据中的每一条数据对应一个所述存储表;
按照预设排序规则从所述第一类数据中获取第一数据;
所述预设排序规则用于对所述第一类数据进行排序,所述第一数据为满足所述查询请求和所述预设排序规则的最优数据;
当所述单表缓存器存储的数据的数据量,小于所述查询请求中请求查询的数据量时,从数据库中获取新的待缓存数据,以使得所述单表缓存器存储的数据的数据量,大于所述查询请求中请求查询的数据量的两倍。
2.根据权利要求1所述的方法,其特征在于,所述根据用户输入的查询请求,从单表缓存器存储的数据中获取第一类数据,包括:
根据所述查询请求,按照所述预设排序规则从每个所述存储表中获取预设数量数据,所述预设数量数据通过所述单表缓存器存储;
按照所述预设排序规则从每个所述单表缓存器存储的数据中获取一个第一类子数据,所有所述第一类子数据组成所述第一类数据;
所述预设排序规则还用于对所述存储表和所述单表缓存器存储中的数据进行排序。
3.根据权利要求2所述的方法,其特征在于,在所述按照预设排序规则从所述第一类数据中获取第一数据之后,所述方法还包括:
在所述第一数据对应的单表缓存器中将所述第一数据删除;
从所述第一数据对应的单表缓存器中获取一个第二类子数据;
所述第二类子数据,与除所述第一数据之外的第一类数据中其余第一类子数据组成第二类数据;
按照所述预设排序规则,从所述第二类数据中获取第二数据,所述第二数据为在第二类数据中满足所述查询请求和所述预设排序规则的最优数据。
4.一种数据查询装置,其特征在于,所述装置用于实现多表存储数据的分页查询,所述装置包括:
获取单元,用于根据用户输入的查询请求,从单表缓存单元存储的数据中获取第一类数据,所述第一类数据包含的数据个数与存储表的个数相同,且第一类数据中的每一条数据对应一个所述存储表;
所述获取单元,还用于按照预设排序规则从所述第一类数据中获取第一数据;
所述预设排序规则用于对所述第一类数据进行排序,所述第一数据为满足所述查询请求和所述预设排序规则的最优数据;
所述获取单元,还用于当所述单表缓存单元存储的数据的数据量,小于所述查询请求中请求查询的数据量时,从数据库中获取新的待缓存数据,以使得所述单表缓存单元存储的数据的数据量,大于所述查询请求中请求查询的数据量的两倍。
5.根据权利要求4所述的装置,其特征在于,所述获取单元包括:
第一获取子单元,用于根据所述查询请求,按照所述预设排序规则从每个所述存储表中获取预设数量数据,所述预设数量数据通过所述单表缓存单元存储;
第二获取子单元,用于按照所述预设排序规则从所述第一获取子单元获取的数据中获取一个第一类子数据,所有所述第一类子数据组成所述第一类数据;
所述预设排序规则还用于对所述存储表和所述单表缓存单元存储中的数据进行排序。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
删除单元,用于在所述获取单元获取到所述第一数据之后,在所述第一数据对应的单表缓存单元中将所述第一数据删除;
所述获取单元,还用于从所述第一数据对应的单表缓存单元中获取一个第二类子数据,所述第二类子数据,与除所述第一数据之外的第一类数据中其余第一类子数据组成第二类数据;按照所述预设排序规则,从所述第二类数据中获取第二数据,所述第二数据为在第二类数据中满足所述查询请求和所述预设排序规则的最优数据。
CN201410579108.0A 2014-10-24 2014-10-24 一种数据查询方法及装置 Active CN104268295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410579108.0A CN104268295B (zh) 2014-10-24 2014-10-24 一种数据查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410579108.0A CN104268295B (zh) 2014-10-24 2014-10-24 一种数据查询方法及装置

Publications (2)

Publication Number Publication Date
CN104268295A CN104268295A (zh) 2015-01-07
CN104268295B true CN104268295B (zh) 2018-07-06

Family

ID=52159816

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410579108.0A Active CN104268295B (zh) 2014-10-24 2014-10-24 一种数据查询方法及装置

Country Status (1)

Country Link
CN (1) CN104268295B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731877A (zh) * 2015-03-06 2015-06-24 小米科技有限责任公司 请求数据的方法及装置
CN106649408B (zh) * 2015-11-04 2020-10-13 中国移动通信集团重庆有限公司 一种大数据检索方法和装置
CN106874326A (zh) * 2016-07-05 2017-06-20 阿里巴巴集团控股有限公司 一种条目列表获取请求处理方法及装置
CN106227739B (zh) * 2016-07-13 2020-01-21 克拉玛依红有软件有限责任公司 一种实现基于多任务的数据请求方法
CN107273545A (zh) * 2017-07-11 2017-10-20 王焱华 一种大数据查询方法
CN108009235A (zh) * 2017-11-29 2018-05-08 福建中金在线信息科技有限公司 数据获取方法及装置
CN110555034B (zh) * 2018-03-28 2021-11-09 武汉斗鱼网络科技有限公司 一种数据查询分页方法、装置、服务器及介质
CN110928900B (zh) * 2018-09-17 2021-02-19 马上消费金融股份有限公司 多表数据的查询方法、装置、终端以及计算机存储介质
CN109446227A (zh) * 2018-10-17 2019-03-08 上海点融信息科技有限责任公司 用于处理缓存分页的方法、装置及计算机可读存储介质
CN109885729B (zh) * 2019-02-20 2021-07-20 北京奇艺世纪科技有限公司 一种显示数据的方法、装置及系统
CN110704733B (zh) * 2019-09-20 2020-10-02 北京三快在线科技有限公司 一种发送数据的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101344893A (zh) * 2008-07-17 2009-01-14 中兴通讯股份有限公司 一种历史数据的存取方法和装置
CN101533406A (zh) * 2009-04-10 2009-09-16 北京锐安科技有限公司 一种海量数据查询方法
CN102289473A (zh) * 2011-07-27 2011-12-21 迈普通信技术股份有限公司 一种多服务器分页查询的装置及方法
CN102880685A (zh) * 2012-09-13 2013-01-16 北京航空航天大学 一种时间密集大数据量的b/s分区间分页查询方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200602B2 (en) * 2003-02-07 2007-04-03 International Business Machines Corporation Data set comparison and net change processing
CN102930054A (zh) * 2012-11-19 2013-02-13 北京奇虎科技有限公司 数据搜索方法及系统
CN102915380A (zh) * 2012-11-19 2013-02-06 北京奇虎科技有限公司 用于对数据进行搜索的方法和系统
CN103853822A (zh) * 2014-02-24 2014-06-11 北京奇虎科技有限公司 一种在浏览器中推送新闻信息的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101344893A (zh) * 2008-07-17 2009-01-14 中兴通讯股份有限公司 一种历史数据的存取方法和装置
CN101533406A (zh) * 2009-04-10 2009-09-16 北京锐安科技有限公司 一种海量数据查询方法
CN102289473A (zh) * 2011-07-27 2011-12-21 迈普通信技术股份有限公司 一种多服务器分页查询的装置及方法
CN102880685A (zh) * 2012-09-13 2013-01-16 北京航空航天大学 一种时间密集大数据量的b/s分区间分页查询方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Solr的企业级检索系统的设计与实现;黄锦捷;《中国优秀硕士学位论文全文数据库 信息科技辑》;20131215(第S2期);参见正文第31-34页 *

Also Published As

Publication number Publication date
CN104268295A (zh) 2015-01-07

Similar Documents

Publication Publication Date Title
CN104268295B (zh) 一种数据查询方法及装置
US11429639B2 (en) Push model for intermediate query results
US10983994B2 (en) Partition access method for query optimization
CN103177056B (zh) 存储为行存储和列存储二者的混合数据库表
US8364751B2 (en) Automated client/server operation partitioning
US20140358977A1 (en) Management of Intermediate Data Spills during the Shuffle Phase of a Map-Reduce Job
CN108897761A (zh) 一种聚簇存储方法及装置
US20110082855A1 (en) Multi-dimensional access to data
WO2014021874A1 (en) Supporting multi-tenancy in a federated data management system
CN107209768A (zh) 用于数据集的可扩展排序的方法和设备
CN106484694B (zh) 基于分布式数据库的全文搜索方法及系统
CN105912877A (zh) 医药产品数据处理方法
JP2013101539A (ja) サンプリング装置、サンプリングプログラム、およびその方法
US10671587B2 (en) Reduced fixed length sort of variable length columns
Yu et al. TencentCLS: the cloud log service with high query performances
Naeem et al. Optimising hybridjoin to process semi-stream data in near-real-time data warehousing
JP2013127750A (ja) パーティション分割装置及び方法及びプログラム
CN108170846B (zh) 基于弹性表模型的大规模多源异构数据持久化方法
JP2022053542A (ja) コンピュータシステム、コンピュータプログラムおよびコンピュータ実装方法(ワークロード駆動によるデータベース再編成)
CN108062310A (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
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 610041 15-24 floor, 1 1 Tianfu street, Chengdu high tech Zone, Sichuan

Patentee after: MAIPU COMMUNICATION TECHNOLOGY Co.,Ltd.

Address before: 610041 16 Hing Hing Road, Chengdu high tech Development Zone, Sichuan, China 16

Patentee before: MAIPU COMMUNICATION TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 610041 nine Xing Xing Road 16, hi tech Zone, Sichuan, Chengdu

Patentee after: MAIPU COMMUNICATION TECHNOLOGY Co.,Ltd.

Address before: 610041 15-24 floor, 1 1 Tianfu street, Chengdu high tech Zone, Sichuan

Patentee before: MAIPU COMMUNICATION TECHNOLOGY Co.,Ltd.