CN116521733A - 一种数据查询方法及装置 - Google Patents
一种数据查询方法及装置 Download PDFInfo
- Publication number
- CN116521733A CN116521733A CN202310436962.0A CN202310436962A CN116521733A CN 116521733 A CN116521733 A CN 116521733A CN 202310436962 A CN202310436962 A CN 202310436962A CN 116521733 A CN116521733 A CN 116521733A
- Authority
- CN
- China
- Prior art keywords
- query
- field
- condition
- value range
- target
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012800 visualization Methods 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/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- 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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书提供一种数据查询方法及装置,所述方法包括:接收针对数据库表的数据查询请求,所述查询请求中包含对应目标字段的查询条件;根据所述查询条件确定后缀字段的后缀取值范围;在查询操作得到的查询结果未满足查询结束条件的情况下,循环执行以下步骤:确定所述数据库表中的初始数据行,以及所述初始数据行中对应前缀字段的前缀取值;其中,所述初始数据行为所述数据库表中尚未执行查询操作的数据行中的首个数据行;将所述前缀取值与所述后缀取值范围组合成对应索引字段的目标取值范围,并根据所述查询条件对所述数据库表中符合所述目标取值范围的数据行执行查询操作。
Description
技术领域
本说明书涉及数据处理技术领域,尤其涉及一种数据查询方法及装置。
背景技术
随着计算机技术的发展与大数据时代的到来,互联网中的数据量不断爆炸式增长,数据存储结构也越来越灵活多样。同时,日益变革的新兴功能需求也驱使着数据库中的数据查询方式愈发高效,例如通过为数据库表中的单个字段建立对应索引(Index)的方式,提高与该字段相关的数据查询操作的效率。
在相关技术中,为解决单个索引无法满足复杂查询的需求,通常使用联合索引的方式将多个字段组成一条索引。然而,使用联合索引进行索引查询的前提在于对应的查询条件必须满足最左匹配原则,否则数据库只能以全表查询的方式查询数据,导致查询数据量大、效率低下。
发明内容
有鉴于此,本说明书提供一种数据查询方法及装置,以解决相关技术中存在的不足。
具体地,本说明书是通过如下技术方案实现的:
根据本说明书实施例的第一方面,提供了一种数据查询方法,应用于数据库,所述数据库中的数据库表对应有目标索引,所述数据库表中的数据行按照所述目标索引有序存储,所述目标索引包含与所述数据库表中多个数据列一一对应的索引字段,所述方法包括:
接收针对所述数据库表的数据查询请求,所述查询请求中包含对应目标字段的查询条件,所述目标字段包含所述索引字段中除最左字段的部分字段;
根据所述查询条件确定后缀字段的后缀取值范围;其中,所述索引字段中位于所述目标字段左侧的所有字段为前缀字段,所述索引字段中的其余字段为所述后缀字段;
在查询操作得到的查询结果未满足查询结束条件的情况下,循环执行以下步骤:
确定所述数据库表中的初始数据行,以及所述初始数据行中对应所述前缀字段的前缀取值;其中,所述初始数据行为所述数据库表中尚未执行查询操作的数据行中的首个数据行;
将所述前缀取值与所述后缀取值范围组合成对应所述索引字段的目标取值范围,并根据所述查询条件对所述数据库表中符合所述目标取值范围的数据行执行查询操作。
根据本说明书实施例的第二方面,提供了一种数据查询装置,应用于数据库,所述数据库中的数据库表对应有目标索引,所述数据库表中的数据行按照所述目标索引有序存储,所述目标索引包含与所述数据库表中多个数据列一一对应的索引字段,所述装置包括:
请求接收单元,用于接收针对所述数据库表的数据查询请求,所述查询请求中包含对应目标字段的查询条件,所述目标字段包含所述索引字段中除最左字段的部分字段;
范围确定单元,用于接收针对所述数据库表的数据查询请求,所述查询请求中包含对应目标字段的查询条件,所述目标字段包含所述索引字段中除最左字段的部分字段;
循环执行单元,用于在查询操作得到的查询结果未满足查询结束条件的情况下,循环执行以下步骤:
确定所述数据库表中的初始数据行,以及所述初始数据行中对应所述前缀字段的前缀取值;其中,所述初始数据行为所述数据库表中尚未执行查询操作的数据行中的首个数据行;
将所述前缀取值与所述后缀取值范围组合成对应所述索引字段的目标取值范围,并根据所述查询条件对所述数据库表中符合所述目标取值范围的数据行执行查询操作。
根据本说明书实施例的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面所述的方法的步骤。
根据本说明书实施例的第四方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法的步骤。
在本说明书所提供的技术方案中,通过组合前缀字段的前缀取值与后缀字段的后缀取值范围可以得到对应索引字段的目标取值范围,由于该目标取值范围具有上述前缀取值,因此符合最左匹配原则,进而数据库也可以在查询条件缺失前缀字段的情况下对数据库表进行索引查找,提高了查询效率。其中,前缀取值由数据库表中的初始数据行决定,且该初始数据行可以在对应的查询操作结束后循环确定,保证了根据前缀取值得到的上述目标取值范围可以涵盖到对应不同前缀取值的数据行,从而在高查询效率的基础上确保了查询准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书一示例性实施例示出的一种数据查询方法的流程示意图;
图2是本说明书一示例性实施例示出的另一种数据查询方法的流程示意图;
图3是本说明书一示例性实施例示出的一种电子设备的示意结构图;
图4是本说明书一示例性实施例示出的一种数据查询装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与本说明书的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本说明书所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
在相关技术中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。因此,当数据库表中存在大量记录时,若要对该表进行查询,通常存在以下两种方式:
第一种方式是全表查询,即将所有数据行(相当于数据库表的记录)一一取出,和查询条件进行一一对比,然后返回满足条件的记录,缺点在于会消耗大量数据库系统时间,并造成大量磁盘I/O(输入/输出,Input/Output)操作;第二种就是在表中建立索引,并在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到数据库表中对应的数据行,检索速度快、效率高,同时也存在索引占用额外磁盘空间的缺点。
本领域的技术人员可以理解的是,针对以上第二种方法,上述查询条件需要符合对应的最左匹配原则,即查询条件中必须存在已建立索引的最左字段,否则无法使用对应的索引进行快速查询,且只能使用第一种方式进行低效查询。
表1
以上表为例,假设数据库表中存在500条学生记录,且已经且唯一建立有由字段Class_ID(班级编号)与字段Group__ID(小组编号)构成的联合索引Class_ID_Group_ID_Index(Class_ID,Group_ID),假设查询条件为“select*from Table where Group_ID=2”(即查询所有小组编号为B的学生),但由于该查询条件不存在联合索引的最左字段“Class_ID”,因此无法通过联合索引快速查询对应的数据,只能以全表扫描的方式将500条记录依次进行扫描,并将扫描得到的数据与查询条件进行比较判断,查询效率极低。假设查询条件为“select*from Table where Class_ID=6AND Group_ID=B”(即查询所有班级编号为6,小组编号为B的学生),由于该查询条件不存在联合索引的最左字段“Class_ID”,因此可以通过联合索引快速查询对应的数据,且查询过程中将会跳过不符合上述查询条件的数据行,查询效率大幅提高。
需要说明的是,上述最左匹配原则均是针对联合索引而言的,原因在于索引的底层设计方式。首先索引可以基于哈希表、有序数组和搜索树等数据结构实现,其中,前二者(哈希表、有序数组)由于分别存在着区间查询速度慢、动态存储成本大等问题,导致适用的数据库的使用场景相对单一化,因此本说明书的技术方案在适用于以上二者的情况下通常可以选择以搜索树的方式建立索引。具体地,以搜索树中的B+树(多路平衡查找树)索引模型为例,由于联合索引相比单一索引存在多个健值,且构建一颗B+树只能根据一个值来构建,因此数据库只能依据联合索引中最左的字段来构建B+树。其中,该B+树的叶子节点呈现以下特性:对应联合索引中的最左字段的数据是有序的,而其余字段对应的数据都是无序的;在最左字段相同的情况下,该最左字段的向右第一个字段所对应的数据便是有序的,同理,在最左字段与向右一个字段均相同的时候,最左字段的向右第二个字段所对应的数据又是有序的。显然,在查询条件中不存在联合索引中的最左字段的情况下,数据库无从获取有序的数据,进而也难以查询符合查询条件的索引值并确定出对应的数据行,只能转而进行低效的全表查询。
因此,本申请书提供了一种数据查询方法以解决上述问题。
图1是本说明书一示例性实施例示出的一种数据查询方法的流程示意图,如图1所示,上述方法应用于数据库,上述数据库中的数据库表对应有目标索引,上述数据库表中的数据行按照上述目标索引有序存储,上述目标索引包含与上述数据库表中多个数据列一一对应的索引字段;上述方法可以包含以下步骤:
S101,接收针对所述数据库表的数据查询请求,所述查询请求中包含对应目标字段的查询条件,所述目标字段包含所述索引字段中除最左字段的部分字段。
当用户需要从数据库的数据库表中查询符合特定条件的数据时,可以向数据库发送针对该数据库表的数据查询请求,以使得数据库根据请求中的查询条件进行数据查询操作,其中,该查询条件中的目标字段包含上述索引字段中除最左字段的部分字段,因此此时的查询条件实际上并不符合上述目标索引的最左匹配原则,也无法使用目标索引进行高效的索引查询。其外,上述数据查询请求的内容与发送方式可以根据数据库的类型进行改变,本说明书中并不对此进行限制,例如:通过命令输入栏中输入对应的SQL(StructuredQuery Language,结构化查询语言)语句;或者基于可视化工具或应用程序中的图形界面或表单来查询数据,以实现在不需要用户主动编写SQL语句的情况下通过上述工具或应用程序生成相应的SQL语句;或者,可以在例如非关系型数据库(Nonrelational database,NoSQL)中使用不同于SQL的语法(例如JSON(JavaScript Object Notation,JS对象简谱)格式的文档)来查询数据。
S102,根据所述查询条件确定后缀字段的后缀取值范围;其中,所述索引字段中位于所述目标字段左侧的所有字段为前缀字段,所述索引字段中的其余字段为所述后缀字段。
由于上述查询条件中的目标字段不包含索引字段中的最左字段,因此可以根据该目标字段将索引字段划分为两个部分:前缀字段与后缀字段,其中,前缀字段为索引字段中位于上述目标字段左侧的所有字段,后缀字段为索引字段中除上述目标字段左侧的所有字段的其余字段,如下表2所示:
表2
C1 | C2 | C3 | …… | Ck | …… | Cn-1 | Cn |
…… | …… | …… | …… | …… | …… | …… | …… |
表3
假设数据库表存在n列数据列与对应的字段,且已经且唯一建立有由字段C1、C2、C3……Ck构成的目标索引C_Index(C1,C2,C3……Ck),在查询条件为“select*from Tablewhere(Ci=2,……,Cj=10)”(假设i>1且i<=k,j>i且j<=n)的基础上假设n=8、k=6、i=3、j=7(如表3所示),由于该查询条件不存在目标索引的最左字段“C1”,且Ci左侧存在i-1个(在表3中对应3-1=2个)字段,因此可以将C1、C2确定为前缀字段,C3、C4、C5、C6确定为后缀字段,此外,由于C7并不属于目标索引对应的普通字段,因此不参与前、后缀字段与后缀取值范围的计算过程,当然,若查询条件中确实存在针对上述普通字段的查询子条件,那么可以在下文的查询操作执行阶段展开后续处理,本说明书在此不再详述。
上述后缀取值范围可以基于上述后缀字段确定,具体地,后缀取值范围可以根据上述部分字段的不同发生针对性地改变。
在一实施例中,上述后缀取值范围可以根据上述部分字段的连续性进行调整。上述后缀取值范围包含每一后缀字段分别对应的取值范围;其中:在上述部分字段连续的情况下,上述部分字段在上述后缀取值范围中的取值范围匹配于相应字段在上述查询条件中的查询范围;在上述部分字段不连续的情况下,上述部分字段中包含最左字段的连续字段在上述后缀取值范围中的取值范围匹配于相应字段在上述查询条件中的查询范围,上述部分字段中的其他字段在上述后缀取值范围中的取值范围匹配于相应字段的理论取值范围。以表3与上述C_Index(C1,C2,C3,C4,C5,C6)进行论述。第一种情况,假设查询条件为“select*from Table where C3=3AND C4=4AND C5=5AND C6=6”,那么上述后缀取值范围可以确定为[3,4,5,6;3,4,5,6],即C3字段的最小值与最大值均为3、C4字段的最小值与最大值均为4……以此类推。第二种情况,假设查询条件为“select*from Table where C3=3AND C5=5AND C6=6”,相比第一种情况,可以发现查询条件中缺少了字段C4的查询子条件,导致上述部分字段不再连续(被分割为C3与C5、C6两个部分),根据上述最左匹配原则可知,此时关于C5、C6的查询条件在C4不确定的情况下无法被确定,因此上述后缀取值范围可以忽视C5、C6的查询条件,并确定为[3,MIN,MIN,MIN;3,MAX,MAX,MAX],即C3字段的最小值与最大值均为3、其余字段的最小值与最大值匹配于相应字段的理论取值范围,例如所有字段均为无符号Tinyint格式(占用1个字节的整数字段),与其对应的理论取值范围可以是0到255。
在另一实施例中,上述后缀取值范围还可以根据查询条件中针对各个部分字段的查询子条件的查询类型进行调整。具体地,可以在确定上述查询条件中针对各个部分字段的查询子条件,并依次判断每一查询子条件的查询类型后,在当前判断的查询子条件的查询类型为等值查询的情况下,确定相应字段在上述后缀取值范围中的取值范围匹配于该字段对应的查询子条件,并继续判断下一查询子条件的查询类型;或者在当前判断的查询子条件的查询类型为范围查询或者不存在下一查询子条件的情况下,确定相应字段在所述后缀取值范围中的取值范围匹配于该字段对应的查询子条件,并确定部分字段中的其他字段在所述后缀取值范围中的取值范围匹配于相应字段的理论取值范围。依然以表3与上述C_Index(C1,C2,C3,C4,C5,C6)进行论述。第一种情况,假设查询条件为“select*from Tablewhere C3=3AND C4=4AND C5=5AND C6=6”,那么上述后缀取值范围可以确定为[3,4,5,6;3,4,5,6]。第二种情况,假设查询条件为“select*from Table where C3>3AND C4=4ANDC5<=5”,相比第一种情况,可以发现查询条件中的部分字段的查询子条件被分别划分为范围查询(即C3,查询子条件中包含<、>、between、like时)、定值查询(即C4,查询子条件中有且仅包含=时)和范围查询(即C5),此时,根据上述最左匹配原则可知,此时关于C3的查询范围是一个不确定的范围,那么后续字段(C4、C5)的取值将无法保证有序性,因此只能根据C3的查询子条件确定后缀取值范围为[3,MIN,MIN,MIN;MAX,MAX,MAX,MAX],即C3字段的最小值为3(为开区间),最大值为相应理论取值范围的最大值、其余字段的最小值与最大值匹配于相应字段的理论取值范围。
S103,确定所述数据库表中的初始数据行,以及所述初始数据行中对应所述前缀字段的前缀取值;其中,所述初始数据行为所述数据库表中尚未执行查询操作的数据行中的首个数据行。
此时假设未执行过任何查询操作,且查询结果(内容为空)未满足查询结束条件,则开始执行S103。当然,也存在数据库表中不存在任何数据行导致满足上述查询结束条件而不进行S103与S104的情况发生,本申请的技术方案在适用于此类特殊情况的前提下不再对此进行详述。此外,上述初始数据行可以根据查询操作的执行情况的不同设置不同的确定方式。
在一实施例中,在尚未针对数据库表执行查询操作的情况下,可以将数据库表中的第一个数据行作为初始数据行。其中,由于还没有确定下文的目标取值范围,因此无法确定前缀字段的前缀取值,换言之该情况下可以将目标取值范围视为全表范围,进而将数据库表中的第一个数据行作为初始数据行。以表3与上述C_Index(C1,C2,C3,C4,C5,C6)为例,假设第一个数据行为(1,2,3,4,5,6,7,8)且查询条件为“select*from Table where C3=3”,那么此时的目标取值范围可以为C1、C2的取值,即(1,2)。
在另一实施例中,在已针对上述数据库表执行上述查询操作的情况下,可以根据最近一次查询操作中确定的前缀取值生成备选取值范围,并将上述备选取值范围中对应的第一个数据行作为上述初始数据行;其中,上述备选取值范围的最小值为开区间,且上述最小值为上述目标索引中与上述前缀取值的查询条件相匹配的最大值。以下表与上述C_Index(C1,C2,C3,C4,C5,C6)为例,假设查询条件为“select*from Table where C3=3”且最近一次查询操作中确定的前缀取值为(1,2),那么根据该前缀取值生成备选取值范围(1,2,MAX,MAX,MAX,MAX,MAX,MAX;MAX,MAX,MAX,MAX,MAX,MAX,MAX,MAX],其中,为了保证备选取值范围不再涉及表4中的第1-3个数据行,可以将上述备选取值范围的最小值为开区间,且上述最小值为上述目标索引中与上述前缀取值的查询条件相匹配的最大值(对应与1,2,MAX,MAX,MAX,MAX,MAX),进而避免重复查询数据行的情况发生。同时,可以将上述备选取值范围中对应的第一个数据行作为上述初始数据行(例如从表4中的第4-5个数据行中选择第4个数据行,并从该数据行中获取前缀取值为(1,3)),避免错过部分数据行(例如直接获取第4个数据行,进而得到前缀取值为(1,4))的查询操作导致符合查询条件的数据行丢失。
表4
C1 | C2 | C3 | C4 | C5 | C6 | C7 | C8 |
1 | 2 | 3 | …… | …… | …… | …… | …… |
1 | 2 | 4 | …… | …… | …… | …… | …… |
1 | 2 | 10 | …… | …… | …… | …… | …… |
1 | 3 | 3 | …… | …… | …… | …… | …… |
1 | 4 | 2 | …… | …… | …… | …… | …… |
S104,将所述前缀取值与所述后缀取值范围组合成对应所述索引字段的目标取值范围,并根据所述查询条件对所述数据库表中符合所述目标取值范围的数据行执行查询操作。
在获取到后缀取值范围与前缀取值之后,可以将前缀取值置于后缀取值范围前端以组合为对应上述索引字段的目标取值范围。进而根据上述查询条件对数据库表中符合目标取值范围的数据行执行查询操作。例如:假设上述前缀取值为(1,2),后缀取值范围为[3,MIN,MIN,MIN;3,MAX,MAX,MAX]时,那么上述目标取值范围可以为[1,2,3,MIN,MIN,MIN;1,2,3,MAX,MAX,MAX],根据上述最左匹配原则,此时的目标取值范围可以适用于目标索引的索引查询,并快速定位出索引中符合查询条件的索引值,进而确定出在数据库表中对应的数据行,相比全表查询,该数据库利用目标索引跳过了所有不与查询条件对应的数据行,减少了扫描数据行所需要的计算资源总量,进而提高了查询操作的查询效率。
此外,如前所述,上述目标字段中还包含了数据库表中不属于索引字段的普通字段。因此可以将查询条件划分为对应目标字段的第一查询子条件与对应所述普通字段的第二查询子条件,数据库可以对所述数据库表中符合所述目标取值范围的数据行执行查询操作。具体地,以表3与上述C_Index(C1,C2,C3,C4,C5,C6)为例,假设查询条件为“select*from Table where C3=3AND C7=7”,其中,该查询条件可以包含“select*from Tablewhere C3=3”这一第一查询子条件以及“select*from Table where C7=7”这一第二查询子条件,数据库可以根据第一查询子条件从目标索引中快速查询对应的索引值,并根据该索引值确定出对应的数据行,并根据第二查询子条件对确定的数据行进行进一步的筛选,以确定真正符合查询条件的数据。
S105,查询操作得到的查询结果是否满足查询结束条件。
在S104结束后,可以判断上述查询结果是否满足查询结束条件,若满足再次执行S103与S104,否则输出查询结果。其中,上述查询结束条件可以包括以下至少之一:查询到的数据超过预设查询数量(可以通过SQL语句中的“Limit”语句实现)、不存在所述初始数据行。本说明书中并不对此进行限制。
此外,本说明书也不对查询结果的输出时机进行限制,上述查询结果可以在每次循环后直接输出,或者在查询结果累计到预设输出数量或循环结束后才统一输出。
表5
行数 | C1 | C2 | C3 | C4 | C5 | C6 | C7 | C8 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
2 | 1 | 1 | 20 | 2 | 22 | 0 | 2 | 2 |
3 | 1 | 5 | 5 | 1 | 250 | 0 | 1 | 1 |
4 | 2 | 1 | 20 | 2 | 99 | 0 | 2 | 2 |
5 | 2 | 1 | 25 | 1 | 169 | 0 | 5 | 5 |
6 | 2 | 1 | 20 | 2 | 5 | 0 | 2 | 2 |
7 | 3 | 5 | 1 | 5 | 123 | 1 | 1 | 1 |
8 | 3 | 5 | 20 | 2 | 2 | 0 | 2 | 2 |
9 | 3 | 5 | 22 | 1 | 250 | 0 | 5 | 5 |
10 | 3 | 5 | 99 | 5 | 123 | 0 | 2 | 2 |
11 | 3 | 5 | 100 | 5 | 666 | 0 | 5 | 5 |
下面结合表5,以基于LSM-Tree(Log Structured Merge Tree,日志结构合并树)架构的数据库为例,对所述数据查询方法进行进一步说明。其中,LSM-Tree架构数据库的数据可以分层存放于多个结构中,一般分为存储于内存中的MemTable(内存表文件)、存储于磁盘中的基线数据表和增量数据表,并且按照主键(RowKey)有序存储。因此扫描该数据库的过程实际上可以将MemTable、MinorSSTable和MajorSSTable做归并排序,然后按序输出。符合本说明书的方案使用场景。如表5所示,假设该数据库表建立有目标索引C_Index(C1,C2,C3,C4,C5,C6),接收的数据查询请求包含以下查询条件:“select*from T where C3=20AND C4=2AND C5<=100”,所述方法步骤如图2所示,具体如下:
S201,确定后缀取值范围与前缀字段个数。
在一实施例中,上述目标索引一一对应与索引字段C1-C6,其中,查询条件包含目标字段C3、C4、C5,显然,可以确定索引字段中位于目标字段左侧的两个字段(C1,C2)为前缀字段,其余字段(C3,C4,C5,C6)为所述后缀字段,其中,通过上述查询条件可知后缀字段的后缀取值范围为[20,2,MIN,MIN;20,2,100,MAX]。
S202,确定初始数据行。
S203,判断是否存在初始数据行。
在一实施例中,由于尚未针对数据库表执行查询操作,因此可以将表5中的第一个数据行(1,1,1,1,1,1,1,1,1)作为所述初始数据行;此时,又由于存在初始数据行,因此可以执行后续的S205。
在另一实施例中,假设已经为针对数据库表执行了至少一次查询操作,以第二次查询为例,可以将表5中的第3个数据行(1,5,5,1,250,0,1,1,5)作为所述初始数据行;此时,又由于存在初始数据行,因此可以执行后续的S205。
在又一实施例中,假设已经为针对数据库表执行了至少四次查询操作,以第四次查询为例,此时,由于不存在大于(3,5,MAX,MAX,MAX,MAX)的相应初始数据行,因此可以执行S204以停止查询操作。
S204,停止查询操作。
在一实施例中,当不存在初始数据行时,可以输出此前查询的所有查询结果。
S205,确定前缀取值。
在一实施例中,由于初始数据行为(1,1,1,1,1,1,1,1,1)因此可以根据前缀字段的个数确定前缀取值(1,1),即初始数据行中最左侧的两个字段。
S206,将前缀取值与后缀取值范围组合成目标取值范围。
在一实施例中,前缀取值(1,1)与后缀取值范围[20,2,MIN,MIN;20,2,100,MAX]组合后得到目标取值范围[1,1,20,2,MIN,MIN;1,1,20,2,100,MAX]
S207,定位目标取值范围。
在一实施例中,根据上述目标取值范围[1,1,20,2,MIN,MIN;1,1,20,2,100,MAX]可以从目标索引中定位第二数据行所处的索引值范围。
S208,查询数据。
在一实施例中,通过对定位的索引值范围内的所有数据(即第二数据行)进行扫描,得到第二数据行的具体数据,通过比较确定该数据行符合查询条件。
S209,判断查询到的数据是否超过预设查询数量。
在一实施例中,由于上述查询条件没有涉及查询数量的限制,因此,默认执行S211。
S210,停止查询操作。
在一实施例中,输出此前查询的所有查询结果。
S211,判断目标取值范围内的数据是否查询结束
在一实施例中,当查询到数据行为所在目标取值范围的最后一个时,执行S212,否则执行S208,以扫描下一数据行。
S212,生成备选取值范围。
在一实施例中,可以最近一次查询操作中确定的前缀取值(即(1,1))生成备选取值范围(1,1,MAX,MAX,MAX,MAX;MAX,MAX,MAX,MAX,MAX,MAX],并将所述备选取值范围中对应的第一个数据行作为所述初始数据行(即第三数据行),因此备选取值范围所对应的前缀取值为第三数据行的字段C1、C2的取值(1,5)。将前缀取值(1,5)与后缀取值范围[20,2,MIN,MIN;20,2,100,MAX]组合后得到目标取值范围[1,5,20,2,MIN,MIN;1,5,20,2,100,MAX]
S213,定位备选取值范围.
在一实施例中,根据上述目标取值范围[1,5,20,2,MIN,MIN;1,5,20,2,100,MAX]可以从目标索引中定位第三数据行所处的索引值范围。
S214,查询数据。
在一实施例中,通过对定位的索引值范围内的所有数据(即第三数据行)进行扫描,得到第三数据行的具体数据,通过比较确定该数据行不符合查询条件。
上述S205-S214的实施例为第一次循环的查询操作执行过程,后续查询操作与其基本一致。根据表5可知,该实施例最终可以执行4次循环,获取查询结果为第二、四、六、八数据行,相比全表查询,本申请的查询条件即使在未涉及前缀字段的情况下,依然可以不对第五、九、十、十一数据行进行扫描,提高了近1/3的查询性能。
通过以上实施例可知,在本说明书的技术方案中通过组合前缀字段的前缀取值与后缀字段的后缀取值范围可以得到对应索引字段的目标取值范围,由于该目标取值范围具有上述前缀取值,因此符合最左匹配原则,进而数据库也可以在查询条件缺失前缀字段的情况下对数据库表进行索引查找,提高了查询效率。其中,前缀取值由数据库表中的初始数据行决定,且该初始数据行可以在对应的查询操作结束后循环确定,保证了根据前缀取值得到的上述目标取值范围可以涵盖到对应不同前缀取值的数据行,从而在高查询效率的基础上确保了查询准确性。
图3是一示例性实施例中的一种电子设备的示意结构图。请参考图3,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成一种数据查询装置。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
与前述一种数据查询方法的实施例相对应,本说明书还提供了一种数据查询装置的实施例。
请参考图4,图4是一示例性实施例示出的一种数据查询装置的结构示意图。如4所示,在软件实施方式中,上述装置应用于数据库,所述数据库中的数据库表对应有目标索引,所述数据库表中的数据行按照所述目标索引有序存储,所述目标索引包含与所述数据库表中多个数据列一一对应的索引字段,该装置可以包括:
请求接收单元401,用于接收针对所述数据库表的数据查询请求,所述查询请求中包含对应目标字段的查询条件,所述目标字段包含所述索引字段中除最左字段的部分字段;
范围确定单元402,用于根据所述查询条件确定后缀字段的后缀取值范围;其中,所述索引字段中位于所述目标字段左侧的所有字段为前缀字段,所述索引字段中的其余字段为所述后缀字段;
循环执行单元403,用于在查询操作得到的查询结果未满足查询结束条件的情况下,循环执行以下步骤:
确定所述数据库表中的初始数据行,以及所述初始数据行中对应所述前缀字段的前缀取值;其中,所述初始数据行为所述数据库表中尚未执行查询操作的数据行中的首个数据行;
将所述前缀取值与所述后缀取值范围组合成对应所述索引字段的目标取值范围,并根据所述查询条件对所述数据库表中符合所述目标取值范围的数据行执行查询操作。
可选的,所述后缀取值范围包含每一后缀字段分别对应的取值范围;其中:
在所述部分字段连续的情况下,所述部分字段在所述后缀取值范围中的取值范围匹配于相应字段在所述查询条件中的查询范围;
在所述部分字段不连续的情况下,所述部分字段中包含最左字段的连续字段在所述后缀取值范围中的取值范围匹配于相应字段在所述查询条件中的查询范围,所述部分字段中的其他字段在所述后缀取值范围中的取值范围匹配于相应字段的理论取值范围。
可选的,上述范围确定单元402具体用于:
确定所述查询条件中针对各个部分字段的查询子条件,并依次判断每一查询子条件的查询类型;
在当前判断的查询子条件的查询类型为等值查询的情况下,确定相应字段在所述后缀取值范围中的取值范围匹配于该字段对应的查询子条件,并继续判断下一查询子条件的查询类型;
在当前判断的查询子条件的查询类型为范围查询或者不存在下一查询子条件的情况下,确定相应字段在所述后缀取值范围中的取值范围匹配于该字段对应的查询子条件,并确定部分字段中的其他字段在所述后缀取值范围中的取值范围匹配于相应字段的理论取值范围。
可选的,所述查询结束条件包括以下至少之一:查询到的数据超过预设查询数量、不存在所述初始数据行。
可选的,所述循环执行单元403具体用于:
在尚未针对所述数据库表执行所述查询操作的情况下,将所述数据库表中的第一个数据行作为所述初始数据行;
在已针对所述数据库表执行所述查询操作的情况下,根据最近一次查询操作中确定的前缀取值生成备选取值范围,并将所述备选取值范围中对应的第一个数据行作为所述初始数据行;其中,所述备选取值范围的最小值为开区间,且所述最小值为所述目标索引中与所述前缀取值的查询条件相匹配的最大值。
可选的,所述循环执行单元403具体用于:
根据所述目标取值范围进行二分查询,以确定所述查询操作在所述数据库表中符合所述目标取值范围的数据行;
根据所述查询条件对确定的数据行执行所述查询操作。
可选的,所述目标字段还包含所述数据库表中不属于所述索引字段的普通字段;所述循环执行单元403具体用于:
根据所述查询条件所含的对应所述目标字段的第一查询子条件与对应所述普通字段的第二查询子条件,对所述数据库表中符合所述目标取值范围的数据行执行查询操作。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的处理单元。通常,处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (10)
1.一种数据查询方法,应用于数据库,所述数据库中的数据库表对应有目标索引,所述数据库表中的数据行按照所述目标索引有序存储,所述目标索引包含与所述数据库表中多个数据列一一对应的索引字段,所述方法包括:
接收针对所述数据库表的数据查询请求,所述查询请求中包含对应目标字段的查询条件,所述目标字段包含所述索引字段中除最左字段的部分字段;
根据所述查询条件确定后缀字段的后缀取值范围;其中,所述索引字段中位于所述目标字段左侧的所有字段为前缀字段,所述索引字段中的其余字段为所述后缀字段;
在查询操作得到的查询结果未满足查询结束条件的情况下,循环执行以下步骤:
确定所述数据库表中的初始数据行,以及所述初始数据行中对应所述前缀字段的前缀取值;其中,所述初始数据行为所述数据库表中尚未执行查询操作的数据行中的首个数据行;
将所述前缀取值与所述后缀取值范围组合成对应所述索引字段的目标取值范围,并根据所述查询条件对所述数据库表中符合所述目标取值范围的数据行执行查询操作。
2.根据权利要求1所述的方法,所述后缀取值范围包含每一后缀字段分别对应的取值范围;其中:
在所述部分字段连续的情况下,所述部分字段在所述后缀取值范围中的取值范围匹配于相应字段在所述查询条件中的查询范围;
在所述部分字段不连续的情况下,所述部分字段中包含最左字段的连续字段在所述后缀取值范围中的取值范围匹配于相应字段在所述查询条件中的查询范围,所述部分字段中的其他字段在所述后缀取值范围中的取值范围匹配于相应字段的理论取值范围。
3.根据权利要求1所述的方法,所述根据所述查询条件确定后缀字段的后缀取值范围,包括:
确定所述查询条件中针对各个部分字段的查询子条件,并依次判断每一查询子条件的查询类型;
在当前判断的查询子条件的查询类型为等值查询的情况下,确定相应字段在所述后缀取值范围中的取值范围匹配于该字段对应的查询子条件,并继续判断下一查询子条件的查询类型;
在当前判断的查询子条件的查询类型为范围查询或者不存在下一查询子条件的情况下,确定相应字段在所述后缀取值范围中的取值范围匹配于该字段对应的查询子条件,并确定部分字段中的其他字段在所述后缀取值范围中的取值范围匹配于相应字段的理论取值范围。
4.根据权利要求1所述的方法,所述查询结束条件包括以下至少之一:查询到的数据超过预设查询数量、不存在所述初始数据行。
5.根据权利要求1所述的方法,所述确定所述数据库表中的初始数据行,包括:
在尚未针对所述数据库表执行所述查询操作的情况下,将所述数据库表中的第一个数据行作为所述初始数据行;
在已针对所述数据库表执行所述查询操作的情况下,根据最近一次查询操作中确定的前缀取值生成备选取值范围,并将所述备选取值范围中对应的第一个数据行作为所述初始数据行;其中,所述备选取值范围的最小值为开区间,且所述最小值为所述目标索引中与所述前缀取值的查询条件相匹配的最大值。
6.根据权利要求1所述的方法,所述根据所述查询条件对所述数据库表中符合所述目标取值范围的数据行执行查询操作,包括:
根据所述目标取值范围进行二分查询,以确定所述查询操作在所述数据库表中符合所述目标取值范围的数据行;
根据所述查询条件对确定的数据行执行所述查询操作。
7.根据权利要求1所述的方法,所述目标字段还包含所述数据库表中不属于所述索引字段的普通字段;所述根据所述查询条件对所述数据库表中符合所述目标取值范围的数据行执行查询操作,包括:
根据所述查询条件所含的对应所述目标字段的第一查询子条件与对应所述普通字段的第二查询子条件,对所述数据库表中符合所述目标取值范围的数据行执行查询操作。
8.一种数据查询装置,应用于数据库,所述数据库中的数据库表对应有目标索引,所述数据库表中的数据行按照所述目标索引有序存储,所述目标索引包含与所述数据库表中多个数据列一一对应的索引字段,所述装置包括:
请求接收单元,用于接收针对所述数据库表的数据查询请求,所述查询请求中包含对应目标字段的查询条件,所述目标字段包含所述索引字段中除最左字段的部分字段;
范围确定单元,用于接收针对所述数据库表的数据查询请求,所述查询请求中包含对应目标字段的查询条件,所述目标字段包含所述索引字段中除最左字段的部分字段;
循环执行单元,用于在查询操作得到的查询结果未满足查询结束条件的情况下,循环执行以下步骤:
确定所述数据库表中的初始数据行,以及所述初始数据行中对应所述前缀字段的前缀取值;其中,所述初始数据行为所述数据库表中尚未执行查询操作的数据行中的首个数据行;
将所述前缀取值与所述后缀取值范围组合成对应所述索引字段的目标取值范围,并根据所述查询条件对所述数据库表中符合所述目标取值范围的数据行执行查询操作。
9.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1~7任一所述方法的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1~7任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310436962.0A CN116521733A (zh) | 2023-04-21 | 2023-04-21 | 一种数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310436962.0A CN116521733A (zh) | 2023-04-21 | 2023-04-21 | 一种数据查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116521733A true CN116521733A (zh) | 2023-08-01 |
Family
ID=87403949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310436962.0A Pending CN116521733A (zh) | 2023-04-21 | 2023-04-21 | 一种数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521733A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149777A (zh) * | 2023-10-27 | 2023-12-01 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置、设备及存储介质 |
-
2023
- 2023-04-21 CN CN202310436962.0A patent/CN116521733A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149777A (zh) * | 2023-10-27 | 2023-12-01 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置、设备及存储介质 |
CN117149777B (zh) * | 2023-10-27 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698912B2 (en) | Method for processing a database query | |
US20090319549A1 (en) | Index compression | |
CN105653700A (zh) | 视频检索方法及系统 | |
US8380737B2 (en) | Computing intersection of sets of numbers | |
CN103345496B (zh) | 多媒体信息检索方法和系统 | |
CN109325032B (zh) | 一种索引数据存储及检索方法、装置及存储介质 | |
WO2021072874A1 (zh) | 基于双数组的位置查询方法、装置、计算机设备及存储介质 | |
US20210271658A1 (en) | Data edge platform for improved storage and analytics | |
US10331717B2 (en) | Method and apparatus for determining similar document set to target document from a plurality of documents | |
CN112084291B (zh) | 信息推荐方法及装置 | |
CN116521733A (zh) | 一种数据查询方法及装置 | |
CN111488371A (zh) | 一种数据查询方法和装置 | |
CN115470284A (zh) | 一种多源异构数据源导入Janusgraph图数据库的方法和装置 | |
CN115809248B (zh) | 数据查询方法和装置以及存储介质 | |
CN112417091A (zh) | 一种文本检索方法及装置 | |
CN109542912B (zh) | 区间数据存储方法、装置、服务器及存储介质 | |
CN116628010A (zh) | 数据处理方法、装置及设备 | |
US20170242880A1 (en) | B-tree index structure with grouped index leaf pages and computer-implemented method for modifying the same | |
CN111125216A (zh) | 数据导入Phoenix的方法及装置 | |
CN115374121A (zh) | 数据库索引的生成方法、机器可读存储介质与计算机设备 | |
Arseneau et al. | STILT: Unifying spatial, temporal and textual search using a generalized multi-dimensional index | |
CN109992687B (zh) | 人脸数据的搜索方法、装置、电子设备及可读存储介质 | |
CN110941730B (zh) | 基于人脸特征数据偏移的检索方法与装置 | |
CN107239517B (zh) | 基于Hbase数据库的多条件搜索方法及装置 | |
Koutroumanis et al. | TrajParquet: A trajectory-oriented column file format for mobility data lakes |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40094551 Country of ref document: HK |