CN117931896A - 一种数据库查询方法、装置及数据库查询*** - Google Patents
一种数据库查询方法、装置及数据库查询*** Download PDFInfo
- Publication number
- CN117931896A CN117931896A CN202410226367.9A CN202410226367A CN117931896A CN 117931896 A CN117931896 A CN 117931896A CN 202410226367 A CN202410226367 A CN 202410226367A CN 117931896 A CN117931896 A CN 117931896A
- Authority
- CN
- China
- Prior art keywords
- database
- target data
- target
- query
- time
- 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 29
- 238000004590 computer program Methods 0.000 claims description 9
- 238000003491 array Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 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/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal 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)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请的实施例提供一种数据库查询方法、装置及数据库查询***,其包括接接收查询指令,查询指令包括:查询表名、查询数据库类型、查询开始时间、查询结束时间、查询条数和页数;从多个数据库中获取与查询数据库类型匹配的目标数据库和目标数据表;根据查询开始时间、查询结束时间和每一个目标数据表中的第一预设条数据的记录时间,从目标数据库中确定查询数据库;查询数据库包括:查询开始时间所在的开始数据库、查询结束时间所在的结束数据库、以及记录时间位于查询开始时间和查询结束时间之间的中间数据库;根据查询数据库,获取满足查询条数和页数的目标数据;输出目标数据。本申请具有提升分库分表中查询效率的效果。
Description
技术领域
本申请涉及数据库查询技术领域,尤其是涉及一种数据库查询方法、装置及数据库查询***。
背景技术
MySQL是一个关系型数据库管理***,也是当前最流行的关系型数据库管理***之一,在程序运行过程中,通常都会选择将数据存储在MySQL的库表中。
目前,在使用MySQL进行数据存储时,由于数据量较小,往往一个数据库便可以满足存储的需求。
但由于光伏逆变器的数据量较大,往往一个数据库中无法保存完整的数据,这时就需要分库分表去保存。
但在查表时,还是采用相关技术中的单个表逐个查询的方式,也即,先查询第一个数据库,找到数据后便输出,然后再去查询第二个数据库,依次类推,直到查询完所有的数据库。
然而,发明人认识到,针对上述中的相关技术,发明人认为存在缺陷有:在分库分表中依然采取相关技术中单库单表的查询方式,需要不断的根据查询条件去每一个表中进行查询并输出,这样就会使得查询效率较低。
发明内容
本申请一个或者多个实施例提供一种数据库查询方法、装置及数据库查询***,以解决或者至少部分上缓解相关技术中的在分库分表中查询时效率较低问题。
本申请的第一方面,提供一种数据库查询方法,采用如下的技术方案为:
接收查询指令,所述查询指令包括:查询表名、查询数据库类型、查询开始时间、查询结束时间、查询条数和页数。
从多个数据库中获取与所述查询数据库类型匹配的目标数据库和目标数据表。
根据所述查询开始时间、所述查询结束时间和每一个所述目标数据表中的第一预设条数据的记录时间,从所述目标数据库中确定查询数据库;所述查询数据库包括:所述查询开始时间所在的开始数据库、所述查询结束时间所在的结束数据库、以及所述记录时间位于所述查询开始时间和所述查询结束时间之间的中间数据库。
根据所述查询数据库,获取满足所述查询条数和所述页数的目标数据。
输出所述目标数据。
在其中一个实施例中,所述根据所述查询数据库,获取满足所述查询条数和所述页数的目标数据,包括:
若所述开始数据库和所述结束数据库为同一数据库,从所述开始数据库中根据所述查询条数与所述页数获取目标数据。
若所述开始数据库和所述结束数据库不是同一数据库,从所述查询数据库中获取满足所述查询条数和所述页数的目标数据。
在其中一个实施例中,所述从所述查询数据库中获取满足所述查询条数和所述页数的目标数据,包括:
获取第一数组,所述第一数组中的元素由各个所述目标数据表中满足第一查询条件的数据条数组成,所述第一查询条件与所述查询开始时间或所述查询结束时间相关。
根据所述第一数组获取第二数组,其中,所述第二数组中的第N个元素为所述第一数组中的前N个元素之和;所述N为正整数。
根据所述第二数组中的元素获取所述目标数据。
在其中一个实施例中,所述获取第一数组,包括:
从第一目标数据表中,获取所述查询开始时间至所述第一目标数据表中的最后一条数据之间的第一数据条数;所述第一目标数据表为小于或者等于所述查询开始时间的最大时间值所在的所述目标数据数据表。
从第二目标数据表中,获取第一预设条数据至所述查询结束时间之间的第二数据条数;所述第二目标数据表为小于或者等于所述查询结束时间的最大时间值所在的所述目标数据数据表;
依次获取每个第三目标数据表中的所有数据条数,所述第三目标数据表为大于所述第一目标时间且小于第二目标时间的时间值所在的所述目标数据表。
依次获取每个所述第三目标数据表中的所有数据条数,所述第三目标数据表为大于所述第一目标时间且小于所述第二目标时间的时间值所在的所述目标数据表。
按照时间递增顺序依次排列所述第一数据条数、每个所述第三目标数据表中的所有数据条数以及所述第二数据条数,以生成所述第一数组。
在其中一个实施例中,所述根据所述第二数组中的元素获取所述目标数据,包括:
根据所述第二数组中的元素和第一预设条件判断所述目标数据是否在一个所述目标数据表中,其中,所述第一预设条件与所述页数和所述查询条数相关。
若在,从所述目标数据表中获取所述目标数据。
若不在,确定所述目标数据所在的多个目标数据表,并从所述多个目标数据表中获取所述目标数据。
在其中一个实施例中,所述根据所述第二数组中的元素和第一预设条件判断所述目标数据是否在一个目标数据表中,包括:
根据所述第二数组中的元素与第一预设条数以及第二预设条数的关系判断所述目标数据是否在一个目标数据表中,所述第一预设条数根据所述页数获取,所述第二预设条数根据所述页数与所述查询条数获取。
在其中一个实施例中,所述根据所述第二数组中的元素与第一预设条数以及第二预设条数的关系判断所述目标数据是否在一个目标数据表中,包括:
若存在满足所述第一预设条数以及所述第二预设条数的目标元素,获取所述目标元素的数量。
若所述目标元素为1个,确定所述目标数据在同一个所述目标数据表中。
若所述目标元素为多个,确定所述目标数据在不同的所述目标数据表中。
在其中一个实施例中,所述从所述目标数据表中获取所述目标数据,包括:
从所述目标元素对应的所述目标数据表中获取第三条数至第四条数之间的数据,所述第三条数为所述第一预设条数减去所述目标元素的前一个相邻目标元素后得到的值,所述第四条数为所述第二预设条数减去所述目标元素的前一个相邻目标元素后得到的值。
在其中一个实施例中,所述确定所述目标数据所在的多个目标数据表,并从所述多个目标数据表中获取所述目标数据,包括:
获取第一个所述目标元素所在的目标数据表中,从第五条数至最后一条之间的第一数据;所述第五条数为所述第一预设条数与第一个所述目标元素的前一个相邻目标元素之间的差值。
获取最后一个所述目标元素所在的目标数据表中,从第一预设条数据至差值之间的第二数据;所述差值根据所述目标元素中的最大值与所述第二预设条数获取。
依次获取第一个所述目标元素和最后一个所述目标元素之间的其他各个所述目标元素所在的所述目标数据表中的所有数据。
按照时间递增顺序依次排列所述第一数据、所述其他各个所述目标元素所在的目标数据表中的所有数据和所述第二数据,生成所述目标数据。
与相关技术相比,本申请一个或者多个实施例包括以下至少一种有益技术效果:可以基于查询开始时间和查询结束时间确定要查的数据所在的数据库区间,然后从各个数据库区间中直接获取满足查询条数和页数的目标数据,然后直接输出目标数据,由于可以一次完成数据的查询,无需像相关技术中,逐个数据库输出,提升了数据查询的效率。
本申请的第二方面,提供一种数据库查询装置,采用如下的技术方案为:
接收模块,用于接收查询指令,所述查询指令包括:查询表名、查询数据库类型、查询开始时间、查询结束时间、查询条数和页数。
第一获取模块,用于从多个数据库中获取与所述查询数据库类型匹配的目标数据库和目标数据表。
确定模块,用于根据所述查询开始时间、所述查询结束时间和每一个所述目标数据表中的第一预设条数据的记录时间,从所述目标数据库中确定查询数据库;所述查询数据库包括:所述查询开始时间所在的开始数据库、所述查询结束时间所在的结束数据库、以及所述记录时间位于所述查询开始时间和所述查询结束时间之间的中间数据库。
第二获取模块,用于根据所述查询数据库,获取满足所述查询条数和所述页数的目标数据。
输出模块,用于输出所述目标数据。
本申请的第三方面,提供一种数据库查询***,包括存储器和处理器;所述存储器,用于存储计算机程序,所述处理器,用于当执行所述计算机程序时,实现如上述任一项实施例所述的数据库查询方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例的附图做简单的介绍,显而易见地,下面描述中的附图仅仅涉及本申请的一些实施例,而非对本申请的限制。
图1为根据本申请一些实施方式的数据库查询方法的流程示意图。
图2为根据本申请一些实施方式的后端与前端的交互示意图。
图3为根据本申请一些实施方式的数据库查询装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合显示出根据本申请的多个实施方式的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,应当可以理解的是,所描述的实施方式仅是本申请的一部分实施方式,而不是全部的实施方式。基于本申请中记载的实施方式,本领域普通技术人员在不用花费创造性劳动的前提下所获得的所有其他实施方式,都将属于本申请保护的范围。
除非另有定义,本申请所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本申请中在申请的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”、“包含”、“有”、“具有”、“含有”、“含”等为开放式的用词。因此,“包括”、“包含”、“有”例如一个或多个步骤或元件的一种方法或装置,其具有一个或多个步骤或元件,但不限于仅具有这一个或多个元件。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序或主次关系。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本申请的描述中,需要理解的是,术语“中心”、“横向”、“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“附接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语 在本申请中的具体含义。
在本申请中提及“实施方式”意味着,结合实施方式描述的特定特征、结构或特性可以包含在本申请的至少一个实施方式中。在说明书中的各个位置出现该短语并不一定均是指相同的实施方式,也不是与其它实施方式互斥的独立的或备选的实施方式。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施方式可以与其它实施方式相结合。
如上所述,应当强调,当在本说明书中使用术语“包括/包含”时,用于明确表明表示所述特征、整数、步骤或组件的存在,但不排除存在或添加一个或更多个其他特征、整数、步骤、部件或成组的特征、整数、步骤、部件。如本申请所用,单数形式“一个”、“一”和“该”也包括复数形式,除非上下文另有明确指示。
本说明书中的用词“一”、“一个”可以表示一个,但也可与“至少一个”或“一个或多个”的含义一致。术语“约”一般表示提及的数值加上或减去10%,或更具体地是加上或减去5%。在权利要求书中使用的术语“或”,除非明确表示其仅指可替代的方案,否则其表示“和/或”的意思。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为根据本申请一些实施方式的数据库查询方法的流程示意图。
本申请的一个或者多个实施例公开一种数据库查询方法。参照图1,数据库查询方法包括:
步骤S101,接收查询指令,查询指令包括:查询表名、查询数据库类型、查询开始时间、查询结束时间、查询条数和页数。
其中,查询表名可以使用英文table、查询数据库类型可以使用英文type表示、查询开始时间可以使用英文start_time表示、查询结束时间可以使用英文end_time表示、查询条数可以使用英文limit表示、页数可以使用英文page表示。
本实施例中,上述的查询指令可以为web前端发送的。
如图2所示,在需要进行数据查询时,web前端向后端发送一条请求,其请求中包含所有后端将要查询数据库时所需的信息,这样,后端就可以响应,根据请求中包含的信息获取对应的信息或进行对应的操作,并将结果以应答的形式返回给web前端,在本实施例中,请求即为查询指令。
本申请的技术方案适用于MySQL数据库,且在本申请中采用了分库分表存储数据的方式,数据类型可以包括:目录类(log)、数据类(data)等,表名可以包括:能量管理***(英文:Energy Management System,简称为:ems)、电池管理***(Battery ManagementSystem,简称为:bms)等,每个数据库类型中可以包括不同的表名,示例的,单个数据库的最大存储上限可以设置为100万条,任意表单数据超限时将会自动分库。
步骤S102,从多个数据库中获取与查询数据库类型匹配的目标数据库和目标数据表。
在一个实施例中,步骤S102包括以下子步骤S1021-S1022:
S1021,从多个数据库中获取与查询数据库类型匹配的目标数据库。
由于保存了多个数据库,首先要从保存的多个数据库中去查找与查询指令中的查询数据库类型匹配的目标数据库。
步骤S1022,从各个目标数据库中获取与查询表名匹配的目标数据表。
由于每一个数据库中会保存不同类型的数据表,还需要在查找到的目标数据库中去查找与查询表名匹配的目标数据表。
步骤S103,根据查询开始时间、查询结束时间和每一个目标数据表中的第一预设条数据的记录时间,从目标数据库中确定查询数据库;查询数据库包括:查询开始时间所在的开始数据库、查询结束时间所在的结束数据库、以及记录时间位于查询开始时间和查询结束时间之间的中间数据库。
根据查询开始时间、查询结束时间和每一个目标数据表中的第一预设条数据的记录时间,从目标数据库中确定查询开始时间所在的开始数据库,和查询结束时间所在的结束数据库,以及记录时间位于查询开始时间和查询结束时间之间的中间数据库。
在查找到了目标数据表后,可以获取每一个目标数据表中的第一预设条数据的记录时间,然后判断查询开始时间在哪一个目标数据表的记录时间内。
例如:目标数据表1中的第一预设条数据的记录时间为5:00,目标数据表2中第一预设条数据的记录时间为6:00,目标数据表3中的第一预设条数据的记录时间为7:00,目标数据表4中的第一预设条数据的记录时间为8:00,根据目标数据表1中的第一预设条数据的记录时间和目标数据表2中第一预设条数据的记录时间就可以确定目标数据表1中的数据的记录时间为:5:00-6:00,根据目标数据表2中的第一预设条数据的记录时间和目标数据表3中第一预设条数据的记录时间就可以确定目标数据表1中的数据的记录时间为:6:00-7:00,根据目标数据表2中的第一预设条数据的记录时间和目标数据表3中第一预设条数据的记录时间就可以确定目标数据表1中的数据的记录时间为:7:00-8:00,如果查询开始时间为5:30,查询结束时间为5:40,那么查询开始时间就位于目标数据表1中,此时的目标数据表1所在的数据库为开始数据库,查询结束时间也位于目标数据表1中,此时的目标数据表1所在的数据库也同样为结束数据库;而如果查询开始时间为5:30,查询结束时间为6:10,5:30位于目标数据表1中,此时的目标数据表1所在的数据库为开始数据库,6:10位于目标数据表2中,此时的目标数据表2所在的数据库为结束数据库;而如果查询开始时间为5:30,查询结束时间为7:10,5:30位于目标数据表1中,此时的目标数据表1所在的数据库为开始数据库,7:10位于目标数据表3中,此时的目标数据表3所在的数据库为结束数据库,目标数据表2的时间位于5:30-7:10之间,那么目标数据表2所在的数据库为中间数据库。
步骤S104,根据查询数据库,获取满足查询条数和页数的目标数据。
在一个实施例中,步骤S104包括以下子步骤S1041-S1042:
S1041,若开始数据库和结束数据库为同一数据库,从开始数据库中根据查询条数与页数获取目标数据。
继续按照上述的例子,查询开始时间为5:30,查询结束时间为5:40,5:30位于目标数据表1中,此时的目标数据表1所在的数据库为开始数据库,5:40也位于目标数据表1中,但此时的目标数据表1所在的数据库同样为结束数据库,就可以确定开始数据库和结束数据库为同一目标数据库,然后根据查询条数和页数从目标数据表1所在的数据库中获取目标数据,具体获取方法与相关技术中类似,此处不再赘述。
步骤S1042,若开始数据库和结束数据库不是同一数据库,从查询数据库中获取满足查询条数和页数的目标数据。
也即,在开始数据库和结束数据库不是同一数据库时,根据开始数据库、结束数据库和中间数据库获取满足查询条数和页数的目标数据。
继续按照上述的例子,查询开始时间为5:30,查询结束时间为6:10,5:30位于目标数据表1中,此时的目标数据表1所在的数据库为开始数据库,6:10位于目标数据表2中,此时的目标数据表2所在的数据库为结束数据库,就可以确定开始数据库和结束数据库不是同一数据库,但此时是相邻的两个数据库,因此,中间数据库为0,也即不存在中间数据库,在获取目标数据时,只需按照这两个数据库去获取即可。
继续按照上述的例子,查询开始时间为5:30,查询结束时间为7:10,5:30位于目标数据表1中,此时的目标数据表1所在的数据库为开始数据库,7:10位于目标数据表3中,此时的目标数据表3所在的数据库为结束数据库,就可以确定开始数据库和结束数据库不是同一数据库,但此时是相隔的两个数据库,因此,中间数据库为目标数据表2所在的数据库,在获取目标数据时,就需要从这三个数据库中去获取。
步骤S105,输出目标数据。
示例的,输出目标数据可以包括向web前端发送目标数据。
本实施例中,可以基于查询开始时间和查询结束时间确定要查的数据所在的数据库区间,然后从各个数据库区间中直接获取满足查询条数和页数的目标数据,然后直接输出目标数据,由于可以一次完成数据的查询,无需像相关技术中,逐个数据库输出,提升了数据查询的效率。
在一个实施例中,步骤S1042包括以下子步骤A1-A5:
A1、获取第一数组,第一数组中的元素由各个目标数据表中满足第一查询条件的数据条数组成,第一查询条件与查询开始时间或查询结束时间相关。
本实施例中可以以数组的方式进行查询,此时的第一数组中的各个元素由满足查询条件的数据条数组成。
需要说明的是,步骤A1包括以下子步骤A11-A14:
A11、从第一目标数据表中,获取查询开始时间至第一目标数据表中的最后一条数据之间的第一数据条数;第一目标数据表为小于或者等于查询开始时间的最大时间值所在的目标数据数据表。
本步骤中的第一数据条数可以理解为第一数组中的第一个元素,也可以称之为第一数组中的首项数据条数,也即,首项数据条数为第一目标数据表中,从查询开始时间至第一目标数据表中的最后一条数据之间的数据条数。
例如:第一目标数据表中的记录时间为7:00,查询开始时间为7:30,此时便在第一目标数据表中查询7:30对应的数据至最后一条数据之间的数据条数,例如:25条,那此时的首项数据条数为25。
A12、从第二目标数据表中,获取第一预设条数据至查询结束时间之间的第二数据条数;第二目标数据表为小于或者等于查询结束时间的最大时间值所在的目标数据数据表。
本步骤中的第二数据条数可以理解为第一数组中的最后一个元素,也可以称之为第一数组中的末项数据条数,也即,末项数据条数为第二目标数据表中,第一预设条数据至查询结束时间之间的数据条数。
例如:第二目标数据表中的记录时间为9:00,查询结束时间为9:30,此时便在第二目标数据表中查询9:00至9:30之间的数据条数,例如:26条,那此时的末项数据条数为26。
A13、依次获取每个第三目标数据表中的所有数据条数,第三目标数据表为大于第一目标时间且小于第二目标时间的时间值所在的目标数据表。
如果第一目标数据表和第二目标数据表相邻,此时的第三目标数据表的所有数据条数为0,如果第一目标数据表和第二目标数据表相隔,获取其中间间隔的目标数据表中的所有数据条数。
例如:第一目标数据表中的记录时间为7:00,第二目标数据表中的记录时间为9:00,中间间隔了第三目标数据表,该第三目标数据表中的记录时间为8:00,此时便还需要获取第三目标数据表中的所有数据条数,如果中间间隔两个第三目标数据表,分别获取每一个第三目标数据表中的所有数据条数。
A14、按照时间递增顺序依次排列第一数据条数、每个第三目标数据表中的所有数据条数以及第二数据条数,以生成第一数组。
生成第一数组,第一数组中的元素由按照时间递增顺序依次排列的首项数据条数、每个第三目标数据表中的所有数据条数以及末项数据条数。
此时得到的第一数组为(首项数据条数、第1个第三目标数据表中的所有数据条数、第2个第三目标数据表中的所有数据条数、…、末项数据条数)。
在一个实施例中,执行步骤A1之前,还可以包括以下子步骤B1-B5:
B1、在一个实施例中,上述步骤S104包括以下子步骤A1-A4:
B2、获取每一个目标数据表中的第一预设条数据的记录时间。
B3、从记录时间中获取小于或者等于查询开始时间的最大时间值的第一目标时间。
B4、从记录时间中获取小于或者等于结束时间的最大时间值的第二目标时间。
B5、从记录时间中获取大于第一目标时间且小于第二目标时间的所有第三记录时间。
其中,第一目标时间对应的第一目标数据表所在的第一目标数据库为开始数据库,第二目标时间对应的第二目标数据表所在的第二目标数据库为结束数据库;第三记录时间对应的第三目标数据表所在的第三目标数据库为中间数据库。
例如:目标数据表1中的第一预设条数据的记录时间为5:00,目标数据表2中第一预设条数据的记录时间为6:00,目标数据表3中的第一预设条数据的记录时间为7:00,目标数据表4中的第一预设条数据的记录时间为8:00,而查询开始时间为6:30,此时可以不用确定每一个目标数据表中的时间区间,而是直接从记录时间中获取小于或者等于查询开始时间的最大时间值,也即6:00,此时的6:00为第一目标时间,查询结束时间为7:20,此时同样可以不用确定每一个目标数据表中的时间区间,而是直接从记录时间中获取小于或者等于查询结束时间的最大时间值,也即7:00,此时的7:00为第二目标时间,此时,第一目标时间6:00所在的目标数据表2所在的数据库为开始数据库,第二目标时间7:00所在的目标数据表3所在的数据库为结束数据库,如果目标数据表1和目标数据表2相邻,那么第三记录时间不存在,如果目标数据表1和目标数据表2相隔,其中间隔的目标数据表所在的第三目标数据库为中间数据库。
需要说明的是,还可以为每个数据库设置流水号,该流水号可以唯一标识一个数据库,例如:对数据库根据其存储的数据类型可以表示为ems_log_xxx,ems_data_xxx,其中xxx即为流水号,可以从1~2147483647递增。
在得到了第一目标时间后,便可以通过流水号找到其对应的第一目标数据库,在得到了第二目标时间后,便可以通过流水号找到其对应的第二目标数据库,在得到了第三记录时间后,便可以通过流水号找到其对应的第三目标数据库。
A2、根据第一数组获取第二数组,其中,第二数组中的第N个元素为第一数组中的前N个元素之和;N为正整数。
例如:第一数组为[1000000,1000000,1000000,1000000,24171],那么第二数组为:[1000000,1000000+1000000,1000000+1000000+1000000,1000000+1000000+1000000+1000000,1000000+1000000+1000000+1000000+24171],也即,第二数组为[1000000,2000000,3000000,4000000,4024171],这里的1000000相当于第一目标数据库,2000000相当于第二目标数据库,以此类推。
A3、根据第二数组中的元素获取目标数据。
在一个实施例中,步骤A3包括以下子步骤A31-A31:
A31、根据第二数组中的元素和第一预设条件判断目标数据是否在一个目标数据表中,其中,第一预设条件与页数和查询条数相关。
具体的,可以根据第二数组中的元素与第一预设条数以及第二预设条数的关系判断目标数据是否在一个目标数据表中,第一预设条数根据页数获取,第二预设条数根据页数与查询条数获取。
若存在满足第一预设条数以及第二预设条数的目标元素,获取目标元素的数量,若目标元素为1个,确定目标数据在同一个目标数据表中;若目标元素为多个,确定目标数据在不同的目标数据表中。
其中,根据第二数组中的元素和第一预设条件判断目标数据是否在一个目标数据表中,包括以下子步骤:A311-A314。
A311、检测第二数组的各个元素是否存在满足第一预设子条件判断的目标元素,第一预设子条件为大于或者等于第一预设条数的最小值,以及大于或者等于第二预设条数的最小值,其中,第一预设条数可以为页数减去1后,与查询条数的乘积,第二预设条数可以为页数与查询条数的乘积。
A312、若存在满足第一预设子条件判断的目标元素,根据目标元素的数量确定目标数据在同一个目标数据表。
本实施例中,需要找的目标元素为大于(page-1)×limit的最小值,以及大于page×limit的最小值。
继续按照上述的例子,page为10(也即第10页),limit为10(也即每页10条):(page-1)×limit=90,page×limit=100,在第二数组中:大于90的最小值为1000000,大于100的最小值也为1000000,此时获取得到的目标元素就是1000000。
再例如: page为300000(也即第300000页),limit为10(每页10条):(page-1)×limit=2999990,page×limit=3000000,在第二数组中,大于或等于2999990的最小值为3000000,大于或等于3000000的最小值为3000000,那么目标元素就为3000000。
再例如:page为142858(第142858页),limit为7(每页7条):(page-1)×limit=999999,page×limit=1000006,在第二数组中,大于或等于999999的最小值为1000000,大于或等于1000006的最小值为2000000,那么目标元素就为1000000和2000000。
A313、若不存在,检测第二数组的各个元素是否存在满足第二预设子条件判断的目标元素,第二预设子条件为大于或者等于第一预设条数的最小值,以及小于或者等于第二预设条数的最大值。
A314、若存在满足第二预设子条件判断的目标元素,根据目标元素的数量确定目标数据在同一个目标数据表。
再例如:page为2(第2页),limit为2500000(每页2500000条):(page-1)×limit=2500000,page×limit=5000000,在第二数组中,大于或等于2500000的最小值为3000000,然而并不存在大于或等于5000000的值,此时可以查找小于或者等于5000000的最大值,也即4024171,那么目标元素就为3000000、4000000和4024171。
其中,若目标元素为1个,确定目标数据在同一个目标数据表中;若目标元素为多个,确定目标数据在不同的目标数据表中。
A32、若目标数据在同一个目标数据表中,从目标数据表中获取目标数据。
示例的,可以从目标元素对应的目标数据表中获取第三条数至第四条数之间的数据,第三条数为第一预设条数减去目标元素的前一个相邻目标元素后得到的值,第四条数为第二预设条数减去目标元素的前一个相邻目标元素后得到的值。
继续按照上述的例子,当得到的目标元素为1000000时,由于1000000在第二数组中所在的数据库为第一数据库,因此1000000的前一个相邻目标元素为0,那么,第三条数为90-0=90,第四条数为100-0=100,此时,便从1000000所在的目标数据表中获取第90条至第100条之间的数据作为目标数据。
继续按照上述的例子,当得到的目标元素为3000000时,3000000的前一个相邻目标元素为2000000,那么,第三条数为2999990-2000000=999990,第四条数为3000000-2000000=1000000,此时,便从3000000所在的目标数据表中获取第999990条至第1000000条之间的数据作为目标数据。
A33、若不在,确定目标数据所在的多个目标数据表,并从多个目标数据表中获取目标数据。
在一个实施例中,步骤A33包括以下子步骤A331-A334:
A331、获取第一个目标元素所在的目标数据表中,从第五条数至最后一条之间的第一数据;第五条数为第一预设条数与第一个目标元素的前一个相邻目标元素之间的差值。
A332、获取最后一个目标元素所在的目标数据表中,从第一预设条数据至差值之间的第二数据;差值根据目标元素中的最大值与第二预设条数获取。
A333、依次获取第一个目标元素和最后一个目标元素之间的其他各个目标元素所在的目标数据表中的所有数据。
A334、按照时间递增顺序依次排列第一数据、其他各个目标元素所在的目标数据表中的所有数据和第二数据,生成目标数据。
需要说明的是,如果目标数据不在同一个目标数据表中,那么此时的目标元素可能满足上述的第一预设子条件,也可能满足上述的第二预设子条件,具体的:
若目标数据不在同一个目标数据表,在目标元素满足第一预设子条件时,从多个目标数据表中获取目标数据包括以下子步骤B51-B55:
B51、获取目标元素中的最大值与第二预设条数的差值。
第二预设条数为page×limit。
B52、获取第一个目标元素所在的目标数据表中,从第五条数至最后一条之间的数据,作为第一前端数据信息;第五条数为第一预设条数与第一个目标元素的前一个相邻目标元素之间的差值。
第一预设条数为(page-1)×limit。
B53、获取最后一个目标元素所在的目标数据表中,从第一预设条数据至差值之间的数据,作为末端数据信息。
B54、依次获取第一个目标元素和最后一个目标元素之间的其他各个目标元素所在的目标数据表中的所有数据信息。
B55、生成目标数据;目标数据由按照时间递增顺序依次排列的第一前端数据信息、其他各个目标元素所在的目标数据表中的所有数据信息和末端数据信息。
继续按照上述的例子,当得到的目标元素为1000000和2000000时,第五条数为999999-0=999999,获取目标元素1000000所在的第一目标数据库的目标数据表中从999999条至1000000条之间的数据作为第一前端数据信息,获取目标元素2000000所在的第二目标数据库的目标数据表中从第一条至(1000006-1000000)之间的数据作为末端数据信息,此时得到的目标数据为:第一个目标数据库(999999-0)~(1000000)+第二个目标数据库(0)~(1000006-1000000)。
如果有1000000和2000000之间还有其他的目标元素,则获取到的目标数据为:第一个目标数据库(999999-0)~(1000000)+中间数据库所有信息+第二个目标数据库(0)~(1000006-1000000),排列的时候按照时间先后顺序排列。
在一个实施例中,若目标数据不在同一个目标数据表,在目标元素满足第二预设子条件时,确定目标数据所在的多个目标数据表,并从多个目标数据表中获取目标数据,包括以下子步骤B56-B58:
B56、从第六条数至最后一条之间的数据,作为第二前端数据信息;第六条数为第一预设条数与第一个目标元素的前一个相邻目标元素之间的差值。
B57、依次获取其他各个目标元素所在的目标数据表中的所有数据信息。
B58、生成目标数据;目标数据由按照时间递增顺序依次排列的第二前端数据信息和其他各个目标元素所在的目标数据表中的所有数据信息。
本实施例的实现方案与上述实施例类似,只是无需去获取末端数据信息,直接在获取了前端数据信息后,便去依次获取其他每一个目标元素所在的目标数据表中的所有数据信息,然后按照时间顺序进行排列。
继续按照上述的例子,在目标元素为3000000、4000000和4024171时,获取3000000所在的第三个目标数据库中的目标数据表中从2500000-2000000至最后一条数据,4000000所在的第四个目标数据库中的目标数据表中的所有数据,4024171所在的第五个目标数据库中的目标数据表中的所有数据,得到的目标数据为:第三个目标数据库(2500000-2000000)~(1000000)+第四个目标数据库(0)~(1000000)+第五个目标数据库(0)~(4024171-4000000)。
本申请的一个或者多个实施例的实施原理为:
1、在web前端接收到查询指令后向后端发送网页语言类型、表名(table)、数据库类型(type)、查询开始时间(start_time)、查询结束时间(end_time)、查询条数(limit)、页数(page)。后端接收到以上信息后将根据数据库类型与表名确认需要查询的目标数据库(目标数据库为与数据库类型同类型的数据库)和目标数据表。
2、搜索所有目标数据库,并搜索目标数据库中所有所查询目标数据表的第一条数据记录,获取其第一条数据记录以及目标数据库的流水号并整合为目标数组。
目标数组={(第一条数据记录,第一条数据记录所在目标数据库的流水号)、(第二条数据记录,第二条数据记录所在目标数据库的流水号)……}。
3、对获取的目标数组进行遍历,并分别与查询开始时间与查询结束时间进行比对,获取小于查询开始时间的最大值的数据库流水号与小于查询结束时间的最大值的数据库流水号,若两个数据库流水号相同,则执行4,若两个数据库流水号不相同,则执行5-9。
4、若两个数据库流水号相同,也即,小于查询开始时间的最大值的数据库与小于查询结束时间的最大值的数据库为同一个数据库,此时,可以根据查询开始时间与查询结束时间获取该数据库对应的目标数据表中数据条数,并根据查询条数与页数从查询到的数据条数中确认需要显示的数据信息,并将信息返回至前端。
5、若两个数据库流水号不相同,也即,小于查询开始时间的最大值的数据库与小于查询结束时间的最大值的数据库不是同一个数据库,获取小于查询开始时间的最大值的数据库的目标数据表中从查询开始时间至最后一条的数据条数,再遍历小于查询开始时间的最大值的数据库与小于查询结束时间的最大值的数据库之间的其他数据库,获取这些数据库对应的目标数据表中的数据条数,最后获取小于查询结束时间的最大值的数据库对应的目标数据表中第一条至查询结束时间之间的数据条数,并将所有查询到的数据条数按照时间顺序依次整合为第一数组。
6、对第一数组进行遍历,获取到每一个数据条数与前面的所有条数之和,并整合为新的第二数组,也即,第二数组中的第N个元素为第一数组中的前N个元素之和,那么第二数组中的最后一条数据条数为查询到的总的数据条数。
7、对第二数组进行遍历,对第二数组中的每一个元素分别与(页数-1)×查询条数与页数×查询条数进行比较,根据结果将会出现两种不同情况:出现一个目标元素,或多个目标元素,当出现一个目标元素时,所查询的目标数据在一个数据库中,当出现多个目标元素,所查询的目标数据在多个数据库中。
8、若所查询的目标数据在一个数据库中,仅需利用对应语句获取目标数据,并将目标数据与总查询条数返回至前端即可。
例如:通过以下语句获取对应的目标数据:
SELECT rowname(查询的列名,如时间、ID、电流、电压) FROM tablename(查询的表名,如BMS_Info,PCS_info) ORDER BY ID DESC LIMIT limit(查询条数) OFFSET((page - 1)×limit)(从第几条开始查询)。
9、若所查询的目标数据不在一个数据库中,则需计算第二数组中小于(页数×查询条数)的最大元素与(页数×查询条数)的最大元素,并分别获取第一个最大元素所在目标数据库中从(页数-1)×查询条数至最后一条的数据信息、中间的最大元素所在的目标数据库中的所有数据信息、最后一个最大元素所在目标数据库中从第一条至差值的数据信息,并将获取的数据信息按时间顺序进行拼接得到目标数据,并与查询总条数一起返回至前端。或者,计算第一个最大元素所在目标数据库中从(页数-1)×查询条数至最后一条的数据信息以及其他最大元素所在的目标数据库中的所有数据信息,并将获取的数据信息按时间顺序进行拼接得到目标数据,并与查询总条数一起返回至前端。
本发明另一实施例提供一种数据库查询装置,如图3所示,该数据库查询装置,包括:
接收模块11,用于接收查询指令,所述查询指令包括:查询表名、查询数据库类型、查询开始时间、查询结束时间、查询条数和页数。
第一获取模块12,用于从多个数据库中获取与所述查询数据库类型匹配的目标数据库和目标数据表。
确定模块13,用于根据所述查询开始时间、所述查询结束时间和每一个所述目标数据表中的第一预设条数据的记录时间,从所述目标数据库中确定查询数据库;所述查询数据库包括:所述查询开始时间所在的开始数据库、所述查询结束时间所在的结束数据库、以及所述记录时间位于所述查询开始时间和所述查询结束时间之间的中间数据库。
第二获取模块14,用于根据所述查询数据库,获取满足所述查询条数和所述页数的目标数据。
输出模块15,用于输出所述目标数据。
在一个实施例中,所述第二获取模块14,包括:
第一获取子模块,用于若所述开始数据库和所述结束数据库为同一数据库,从所述开始数据库中根据所述查询条数与所述页数获取目标数据。
第二获取子模块,用于若所述开始数据库和所述结束数据库不是同一数据库,从所述查询数据库中获取满足所述查询条数和所述页数的目标数据。
在一个实施例中,所述第二获取子模块,包括:
第一获取子单元,用于获取第一数组,所述第一数组中的元素由各个所述目标数据表中满足第一查询条件的数据条数组成,所述第一查询条件与所述查询开始时间或所述查询结束时间相关。
第二获取子单元,用于根据所述第一数组获取第二数组,其中,所述第二数组中的第N个元素为所述第一数组中的前N个元素之和;所述N为正整数。
第三获取子单元,用于根据所述第二数组中的元素获取所述目标数据。
在一个实施例中,所述第一获取子单元,包括:
第四获取子单元,用于从第一目标数据表中,获取所述查询开始时间至所述第一目标数据表中的最后一条数据之间的第一数据条数;所述第一目标数据表为小于或者等于所述查询开始时间的最大时间值所在的所述目标数据数据表。
第五获取子单元,用于从所述第二目标数据表中,获取第一预设条数据至所述查询结束时间之间的第二数据条数;所述第二目标数据表为小于或者等于所述查询结束时间的最大时间值所在的所述目标数据数据表。
第六获取子单元,用于依次获取每个所述第三目标数据表中的所有数据条数,所述第三目标数据表为大于所述第一目标时间且小于所述第二目标时间的时间值所在的所述目标数据表。
第一排列子单元,用于按照时间递增顺序依次排列所述第一数据条数、每个所述第三目标数据表中的所有数据条数以及所述第二数据条数,以生成所述第一数组。
在一个实施例中,所述第三获取子单元,包括:
第一判断子单元,用于根据所述第二数组中的元素和第一预设条件判断所述目标数据是否在一个所述目标数据表中,其中,所述第一预设条件与所述页数和所述查询条数相关。
第七获取子单元,用于若在,从所述目标数据表中获取所述目标数据。
第八获取子单元,用于若不在,确定所述目标数据所在的多个目标数据表,并从所述多个目标数据表中获取所述目标数据。
在一个实施例中,所述第一判断子单元,包括:
第二判断子单元,用于根据所述第二数组中的元素与第一预设条数以及第二预设条数的关系判断所述目标数据是否在一个目标数据表中,所述第一预设条数根据所述页数获取,所述第二预设条数根据所述页数与所述查询条数获取。
在一个实施例中,所述第二判断子单元,包括:
第九获取子单元,用于若存在满足所述第一预设条数以及所述第二预设条数的目标元素,获取所述目标元素的数量。
第一确定子单元,用于若所述目标元素为1个,确定所述目标数据在同一个所述目标数据表中。
第二确定子单元,用于若所述目标元素为多个,确定所述目标数据在不同的所述目标数据表中。
在一个实施例中,所述第七获取子单元,包括:
第十获取子单元,用于从所述目标元素对应的所述目标数据表中获取第三条数至第四条数之间的数据,所述第三条数为所述第一预设条数减去所述目标元素的前一个相邻目标元素后得到的值,所述第四条数为所述第二预设条数减去所述目标元素的前一个相邻目标元素后得到的值。
在一个实施例中,所述第八获取子单元,包括:
第十一获取子单元,用于获取第一个所述目标元素所在的目标数据表中,从第五条数至最后一条之间的第一数据;所述第五条数为所述第一预设条数与第一个所述目标元素的前一个相邻目标元素之间的差值。
第十二获取子单元,用于获取最后一个所述目标元素所在的目标数据表中,从第一预设条数据至差值之间的第二数据;所述差值根据所述目标元素中的最大值与所述第二预设条数获取。
第十三获取子单元,用于依次获取第一个所述目标元素和最后一个所述目标元素之间的其他各个所述目标元素所在的所述目标数据表中的所有数据。
第二排列子单元,用于按照时间递增顺序依次排列所述第一数据、所述其他各个所述目标元素所在的目标数据表中的所有数据和所述第二数据,生成所述目标数据。
本发明又一实施例提供的一种数据库查询***,包括存储器和处理器;所述存储器,用于存储计算机程序,所述处理器,用于当执行所述计算机程序时,实现如上所述的数据库查询方法。
数据库查询***包括计算单元,其可以根据存储在只读存储器(ROM)中的计算机程序或者从存储单元加载到随机访问存储器(RAM)中的计算机程序,来执行各种适当的动作和处理。在RAM中,还可存储设备操作所需的各种程序和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。在本申请中,所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
虽然本公开披露如上,但本公开的保护范围并非仅限于此。本领域技术人员在不脱离本公开的精神和范围的前提下,可进行各种变更与修改,这些变更与修改均将落入本发明的保护范围。
以上描述了本申请的基本原理、主要特征和本申请的优点。本行业的技术人员应该了解,本申请不受上述实施例的限制,上述实施例和说明书中描述的只是本申请的原理,在不脱离本申请精神和范围的前提下本申请还会有各种变化和改进,这些变化和改进都落入要求保护的本申请的范围内。本申请要求的保护范围由所附的权利要求书及其等同物界定。
Claims (11)
1.一种数据库查询方法,其特征在于,包括:
接收查询指令,所述查询指令包括:查询表名、查询数据库类型、查询开始时间、查询结束时间、查询条数和页数;
从多个数据库中获取与所述查询数据库类型匹配的目标数据库和目标数据表;
根据所述查询开始时间、所述查询结束时间和每一个所述目标数据表中的第一预设条数据的记录时间,从所述目标数据库中确定查询数据库;所述查询数据库包括:所述查询开始时间所在的开始数据库、所述查询结束时间所在的结束数据库、以及所述记录时间位于所述查询开始时间和所述查询结束时间之间的中间数据库;
根据所述查询数据库,获取满足所述查询条数和所述页数的目标数据;
输出所述目标数据。
2.如权利要求1所述的数据库查询方法,其特征在于,所述根据所述查询数据库,获取满足所述查询条数和所述页数的目标数据,包括:
若所述开始数据库和所述结束数据库为同一数据库,从所述开始数据库中根据所述查询条数与所述页数获取目标数据;
若所述开始数据库和所述结束数据库不是同一数据库,从所述查询数据库中获取满足所述查询条数和所述页数的目标数据。
3.如权利要求2所述的数据库查询方法,其特征在于,所述从所述查询数据库中获取满足所述查询条数和所述页数的目标数据,包括:
获取第一数组,所述第一数组中的元素由各个所述目标数据表中满足第一查询条件的数据条数组成,所述第一查询条件与所述查询开始时间或所述查询结束时间相关;
根据所述第一数组获取第二数组,其中,所述第二数组中的第N个元素为所述第一数组中的前N个元素之和;所述N为正整数;
根据所述第二数组中的元素获取所述目标数据。
4.如权利要求3所述的数据库查询方法,其特征在于,所述获取第一数组,包括:
从第一目标数据表中,获取所述查询开始时间至所述第一目标数据表中的最后一条数据之间的第一数据条数;所述第一目标数据表为小于或者等于所述查询开始时间的最大时间值所在的所述目标数据数据表;
从第二目标数据表中,获取第一预设条数据至所述查询结束时间之间的第二数据条数;所述第二目标数据表为小于或者等于所述查询结束时间的最大时间值所在的所述目标数据数据表;
依次获取每个第三目标数据表中的所有数据条数,所述第三目标数据表为大于所述第一目标时间且小于第二目标时间的时间值所在的所述目标数据表;
按照时间递增顺序依次排列所述第一数据条数、每个所述第三目标数据表中的所有数据条数以及所述第二数据条数,以生成所述第一数组。
5.如权利要求3所述的数据库查询方法,其特征在于,所述根据所述第二数组中的元素获取所述目标数据,包括:
根据所述第二数组中的元素和第一预设条件判断所述目标数据是否在一个所述目标数据表中,其中,所述第一预设条件与所述页数和所述查询条数相关;
若在,从所述目标数据表中获取所述目标数据;
若不在,确定所述目标数据所在的多个目标数据表,并从所述多个目标数据表中获取所述目标数据。
6.如权利要求5所述的数据库查询方法,其特征在于,所述根据所述第二数组中的元素和第一预设条件判断所述目标数据是否在一个目标数据表中,包括:
根据所述第二数组中的元素与第一预设条数以及第二预设条数的关系判断所述目标数据是否在一个目标数据表中,所述第一预设条数根据所述页数获取,所述第二预设条数根据所述页数与所述查询条数获取。
7.如权利要求6所述的数据库查询方法,其特征在于,所述根据所述第二数组中的元素与第一预设条数以及第二预设条数的关系判断所述目标数据是否在一个目标数据表中,包括:
若存在满足所述第一预设条数以及所述第二预设条数的目标元素,获取所述目标元素的数量;
若所述目标元素为1个,确定所述目标数据在同一个所述目标数据表中;
若所述目标元素为多个,确定所述目标数据在不同的所述目标数据表中。
8.如权利要求7所述的数据库查询方法,其特征在于,所述从所述目标数据表中获取所述目标数据,包括:
从所述目标元素对应的所述目标数据表中获取第三条数至第四条数之间的数据,所述第三条数为所述第一预设条数减去所述目标元素的前一个相邻目标元素后得到的值,所述第四条数为所述第二预设条数减去所述目标元素的前一个相邻目标元素后得到的值。
9.如权利要求7所述的数据库查询方法,其特征在于,所述确定所述目标数据所在的多个目标数据表,并从所述多个目标数据表中获取所述目标数据,包括:
获取第一个所述目标元素所在的目标数据表中,从第五条数至最后一条之间的第一数据;所述第五条数为所述第一预设条数与第一个所述目标元素的前一个相邻目标元素之间的差值;
获取最后一个所述目标元素所在的目标数据表中,从第一预设条数据至差值之间的第二数据;所述差值根据所述目标元素中的最大值与所述第二预设条数获取;
依次获取第一个所述目标元素和最后一个所述目标元素之间的其他各个所述目标元素所在的所述目标数据表中的所有数据;
按照时间递增顺序依次排列所述第一数据、所述其他各个所述目标元素所在的目标数据表中的所有数据和所述第二数据,生成所述目标数据。
10.一种数据库查询装置,其特征在于,包括:
接收模块,用于接收查询指令,所述查询指令包括:查询表名、查询数据库类型、查询开始时间、查询结束时间、查询条数和页数;
第一获取模块,用于从多个数据库中获取与所述查询数据库类型匹配的目标数据库和目标数据表;
确定模块,用于根据所述查询开始时间、所述查询结束时间和每一个所述目标数据表中的第一预设条数据的记录时间,从所述目标数据库中确定查询数据库;所述查询数据库包括:所述查询开始时间所在的开始数据库、所述查询结束时间所在的结束数据库、以及所述记录时间位于所述查询开始时间和所述查询结束时间之间的中间数据库;
第二获取模块,用于根据所述查询数据库,获取满足所述查询条数和所述页数的目标数据;
输出模块,用于输出所述目标数据。
11.一种数据库查询***,其特征在于,包括存储器和处理器;所述存储器,用于存储计算机程序,所述处理器,用于当执行所述计算机程序时,实现如权利要求1至9任一项所述的数据库查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410226367.9A CN117931896B (zh) | 2024-02-29 | 2024-02-29 | 一种数据库查询方法、装置及数据库查询*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410226367.9A CN117931896B (zh) | 2024-02-29 | 2024-02-29 | 一种数据库查询方法、装置及数据库查询*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117931896A true CN117931896A (zh) | 2024-04-26 |
CN117931896B CN117931896B (zh) | 2024-06-18 |
Family
ID=90766516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410226367.9A Active CN117931896B (zh) | 2024-02-29 | 2024-02-29 | 一种数据库查询方法、装置及数据库查询*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117931896B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040139116A1 (en) * | 2003-01-15 | 2004-07-15 | Porter Luke Martin Leonard | Time in databases and applications of databases |
CN102880685A (zh) * | 2012-09-13 | 2013-01-16 | 北京航空航天大学 | 一种时间密集大数据量的b/s分区间分页查询方法 |
US20160162548A1 (en) * | 2014-12-05 | 2016-06-09 | International Business Machines Corporation | Query optimization with zone map selectivity modeling |
US20170075965A1 (en) * | 2015-09-16 | 2017-03-16 | Turn Inc. | Table level distributed database system for big data storage and query |
CN107818115A (zh) * | 2016-09-14 | 2018-03-20 | 苏宁云商集团股份有限公司 | 一种处理数据表的方法及装置 |
US20200293532A1 (en) * | 2017-09-14 | 2020-09-17 | Savizar, Inc. | Database engine |
CN112231342A (zh) * | 2020-09-25 | 2021-01-15 | 苏州浪潮智能科技有限公司 | 一种多条件分页查询优化方法、***、终端及存储介质 |
CN112632125A (zh) * | 2020-12-23 | 2021-04-09 | 福信富通科技股份有限公司 | 一种针对MySQL的分表分区查询方法 |
CN115114332A (zh) * | 2022-06-15 | 2022-09-27 | 金蝶软件(中国)有限公司 | 一种数据库查询方法、装置、设备及可读存储介质 |
CN115391605A (zh) * | 2022-07-26 | 2022-11-25 | 北京京东乾石科技有限公司 | 数据查询方法、装置、设备、计算机可读介质和程序产品 |
CN115617878A (zh) * | 2022-11-17 | 2023-01-17 | 浪潮电子信息产业股份有限公司 | 一种数据查询方法、***、装置、设备及计算机存储介质 |
CN116628018A (zh) * | 2023-06-13 | 2023-08-22 | 中国联合网络通信集团有限公司 | 一种数据查询方法、装置、服务器及存储介质 |
CN116775716A (zh) * | 2023-06-07 | 2023-09-19 | 中国工商银行股份有限公司 | 数据查询方法、装置、存储介质及电子设备 |
CN117349323A (zh) * | 2023-12-05 | 2024-01-05 | 苏州元脑智能科技有限公司 | 数据库的数据处理方法及装置、存储介质及电子设备 |
-
2024
- 2024-02-29 CN CN202410226367.9A patent/CN117931896B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040139116A1 (en) * | 2003-01-15 | 2004-07-15 | Porter Luke Martin Leonard | Time in databases and applications of databases |
CN102880685A (zh) * | 2012-09-13 | 2013-01-16 | 北京航空航天大学 | 一种时间密集大数据量的b/s分区间分页查询方法 |
US20160162548A1 (en) * | 2014-12-05 | 2016-06-09 | International Business Machines Corporation | Query optimization with zone map selectivity modeling |
US20170075965A1 (en) * | 2015-09-16 | 2017-03-16 | Turn Inc. | Table level distributed database system for big data storage and query |
CN107818115A (zh) * | 2016-09-14 | 2018-03-20 | 苏宁云商集团股份有限公司 | 一种处理数据表的方法及装置 |
US20200293532A1 (en) * | 2017-09-14 | 2020-09-17 | Savizar, Inc. | Database engine |
CN112231342A (zh) * | 2020-09-25 | 2021-01-15 | 苏州浪潮智能科技有限公司 | 一种多条件分页查询优化方法、***、终端及存储介质 |
CN112632125A (zh) * | 2020-12-23 | 2021-04-09 | 福信富通科技股份有限公司 | 一种针对MySQL的分表分区查询方法 |
CN115114332A (zh) * | 2022-06-15 | 2022-09-27 | 金蝶软件(中国)有限公司 | 一种数据库查询方法、装置、设备及可读存储介质 |
CN115391605A (zh) * | 2022-07-26 | 2022-11-25 | 北京京东乾石科技有限公司 | 数据查询方法、装置、设备、计算机可读介质和程序产品 |
CN115617878A (zh) * | 2022-11-17 | 2023-01-17 | 浪潮电子信息产业股份有限公司 | 一种数据查询方法、***、装置、设备及计算机存储介质 |
CN116775716A (zh) * | 2023-06-07 | 2023-09-19 | 中国工商银行股份有限公司 | 数据查询方法、装置、存储介质及电子设备 |
CN116628018A (zh) * | 2023-06-13 | 2023-08-22 | 中国联合网络通信集团有限公司 | 一种数据查询方法、装置、服务器及存储介质 |
CN117349323A (zh) * | 2023-12-05 | 2024-01-05 | 苏州元脑智能科技有限公司 | 数据库的数据处理方法及装置、存储介质及电子设备 |
Non-Patent Citations (3)
Title |
---|
俏娃;谢悦波;: "中国暴雨数据查询数据库的建立与应用", 中国农村水利水电, no. 07, 15 July 2013 (2013-07-15) * |
熊勇;: "MVC模式下一种高效分页方法的研究与实现", 电脑知识与技术(学术交流), no. 29, 27 October 2006 (2006-10-27) * |
韩兵;王照清;廖联军;: "基于MySql多表分页查询优化技术", 计算机***应用, no. 08, 15 August 2016 (2016-08-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117931896B (zh) | 2024-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6745177B2 (en) | Method and system for retrieving data from multiple data sources using a search routing database | |
US7958136B1 (en) | Systems and methods for identifying similar documents | |
TWI512506B (zh) | Sorting method and device for search results | |
Vu et al. | A graph method for keyword-based selection of the top-k databases | |
US20030037037A1 (en) | Method of storing, maintaining and distributing computer intelligible electronic data | |
CN110633292A (zh) | 一种异构数据库的查询方法、装置、介质、设备及*** | |
Wolff et al. | Searching and browsing collections of structural information | |
CN102262640A (zh) | 一种全文检索文档数据库的方法及装置 | |
US20080189268A1 (en) | Mechanism for automatic matching of host to guest content via categorization | |
CN109359188B (zh) | 一种组件编排方法和*** | |
US20120059828A1 (en) | Methods and Systems for Compressing Indices | |
US20030097354A1 (en) | Method and system for index sampled tablescan | |
CN106462583A (zh) | 用于快速数据分析的***和方法 | |
US20080059432A1 (en) | System and method for database indexing, searching and data retrieval | |
CN106933897B (zh) | 数据查询方法和装置 | |
US20090254514A1 (en) | Handling requests for data stored in database tables | |
CN112612827B (zh) | 数据库分页查询方法、装置、计算机设备及存储介质 | |
CN110442597A (zh) | 一种汽车配件精准查找方法 | |
CN102999637A (zh) | 根据文件特征码为文件自动添加文件标签的方法及*** | |
US10565188B2 (en) | System and method for performing a pattern matching search | |
CN117931896B (zh) | 一种数据库查询方法、装置及数据库查询*** | |
CN110941831B (zh) | 基于分片技术的漏洞匹配方法 | |
CN112231342A (zh) | 一种多条件分页查询优化方法、***、终端及存储介质 | |
CN106326295B (zh) | 语义数据的存储方法及装置 | |
CN106777230B (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 |