CN115374129A - 一种数据库联合索引编码方法和系统 - Google Patents

一种数据库联合索引编码方法和系统 Download PDF

Info

Publication number
CN115374129A
CN115374129A CN202211304082.XA CN202211304082A CN115374129A CN 115374129 A CN115374129 A CN 115374129A CN 202211304082 A CN202211304082 A CN 202211304082A CN 115374129 A CN115374129 A CN 115374129A
Authority
CN
China
Prior art keywords
attribute
original data
piece
data
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211304082.XA
Other languages
English (en)
Other versions
CN115374129B (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.)
Hangzhou Ouruozhi Technology Co ltd
Original Assignee
Hangzhou Ouruozhi 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 Hangzhou Ouruozhi Technology Co ltd filed Critical Hangzhou Ouruozhi Technology Co ltd
Priority to CN202211304082.XA priority Critical patent/CN115374129B/zh
Publication of CN115374129A publication Critical patent/CN115374129A/zh
Application granted granted Critical
Publication of CN115374129B publication Critical patent/CN115374129B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/242Query formulation
    • G06F16/2433Query languages
    • 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/2474Sequence data queries, e.g. querying versioned data
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Abstract

本申请涉及一种数据库联合索引编码方法,其中,该方法包括:确定数据库中目标数据表的各条原始数据;获取各条原始数据对应的识别ID、属性信息,其中,属性信息包括属性类型和属性值,且一条原始数据包括至少一组属性信息;对各条原始数据分别建立联合索引,其中,联合索引中,将各条原始数据和其对应的属性值编码结果存储为键值对形式,且不同属性类型的属性值编码结果之间设置有间隔Mark。解决了相关技术中联合索引编码方式查询效率较低的问题,极大程度地减少了无关数据的扫描量,提升了查询效率。

Description

一种数据库联合索引编码方法和系统
技术领域
本申请涉及数据库管理领域,特别是涉及一种数据库联合索引编码方法、系统、计算机设备和计算机可读存储介质。
背景技术
数据库通常会对表中某些属性创建索引,索引是一种有序数据结构。当查询语句使用索引时,可以让数据库不需要扫描数据,即可直接定位到满足条件的索引记录,从而加速查询速度。
在相关技术中,由于联合索引涉及多个属性,当使用kv(key-value)引擎进行存储时,被索引的多个属性在编码时会被放在连续的空间内,因此,可能会使多条数据的索引编码值相同,进而导致在查询时扫描到不必要的数据,影响查询效率。
目前,针对相关技术中的联合索引编码方式,由于多个原始数据的索引编码相同,导致查询效率较低的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据库联合索引编码方法、系统电子设备和计算机可读存储介质,以至少解决相关技术中联合索引编码方式查询效率较低的问题。
第一方面,本申请实施例提供了一种数据库联合索引编码方法,所述方法包括:
确定数据库中目标数据表的各条原始数据;
获取各条原始数据对应的识别ID、属性信息,其中,所述属性信息包括属性类型和属性值,且一条所述原始数据包括至少一组所述属性信息;
对各条原始数据分别建立联合索引,其中,所述联合索引中,将各条原始数据和其对应的属性值编码结果存储为键值对形式,且不同属性类型的属性值编码结果之间设置有间隔Mark。
在其中一些实施例中,对各条原始数据分别建立联合索引包括:
对各条原始数据对应的属性值,根据所述属性类型进行字典序排序;
对排序完成的属性值进行编码,编码过程中,在不同属性类型的属性值之间添加预设识别符以生成所述间隔Mark;
将所述原始数据和其对应的属性值编码结果存储为键值对形式,其中,所述属性值编码结果为键,所述原始数据为值。
在其中一些实施例中,对各条原始数据分别建立联合索引之后,所述方法还包括:
通过预设查询语句在所述数据库中查询目标原始数据,其中,查询方式包括等值查询和范围查询,
所述预设查询语句包括属性值和预设标识符,所述预设标识符添加在相邻属性值之间,且不同属性值之间按照字典序排序。
在其中一些实施例中,在等值查询的情况下,通过预设查询语句,在所述数据库中查询目标数据包括:
通过在所述数据库的KV存储引擎中,查找与查询语句中的属性值和预设标识符相等的目标键,并根据该目标键确定对应的目标值,得到所述目标数据;
在范围查询的情况下,通过预设查询语句,在所述数据库中查询目标数据包括:
通过在所述数据库的KV存储引擎中,查找与所述查询语句中的属性值和预设标识符满足特定判别条件的至少一个目标键,并根据所述目标键确定对应的目标值,得到所述目标数据。
在其中一些实施例中,所述预设标识符是\0\0。
在其中一些实施例中,在任意一条原始数据的所述属性值中包括\0的情况下,对所述属性值进行编码包括:
在不同属性类型的属性值之间,添加所述预设识别符\0\0作为所述间隔Mark,并对属性值内部的\0,将其重新编码为\0\1。
第二方面,本申请实施例提供了一种数据库联合索引编码系统,所述系统包括:确定模块、获取模块和索引建立模块,其中,
所述确定模块用于,确定数据库中目标数据表的各条原始数据;
所述获取模块用于,获取各条原始数据对应的识别ID、属性信息,其中,所述属性信息包括属性类型和属性值,且一条所述原始数据包括至少一组所述属性信息;
所述索引建立模块用于,对各条原始数据分别建立联合索引,其中,所述联合索引中,将各条原始数据和其对应的属性值编码结果存储为键值对形式,且不同属性类型的属性值编码结果之间设置有间隔Mark。
在其中一些实施例中,所述索引建立模块对各条原始数据分别建立联合索引包括:
对各条原始数据对应的属性值,根据所述属性类型进行字典序排序;
对排序完成的属性值进行编码,编码过程中,在不同属性类型的属性值之间添加预设标识符以生成所述间隔Mark;
将所述原始数据和其对应的属性值编码结果存储为键值对形式,其中,所述属性值编码结果为键,所述原始数据为值。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的方法。
相比于相关技术,本申请实施例提供的一种数据库联合索引编码方法,通过确定数据库中目标数据表的各条原始数据;获取各条原始数据对应的识别ID、属性信息,其中,属性信息包括属性类型和属性值,且一条原始数据包括至少一组属性信息;对各条原始数据分别建立联合索引,其中,联合索引中,将各条原始数据和其对应的属性值编码结果存储为键值对形式,且不同属性类型的属性值编码结果之间设置有间隔Mark。解决了相关技术中联合索引编码方式查询效率较低的问题,极大程度地减少了无关数据的扫描量,提升了查询效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种数据库联合索引编码方法的应用环境示意图;
图2是根据本申请实施例的一种数据库联合索引编码方法的流程图;
图3是根据本申请实施例的一种数据库联合索引编码系统的结构框图;
图4是根据本申请实施例的电子设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请提供的一种数据库联合索引编码方法,可以应用在如图1所示的应用环境中,图1是根据本申请实施例的一种数据库联合索引编码方法的应用环境示意图。如图1所示,用户可以通过客户端10对服务器11发送查询请求(查询语句),以指示服务器11中的该数据库根据索引查找用户所需的目标数据。本实施例中,通过在索引中不同类型属性值之间增加特定的标识符,以及采用特定结构的查询语句,有效避免了多个原始数据的索引编码相同导致查询效率低下的问题,在不额外增加运算量的情况下,提升了查询效率。
在本文中,需要理解的是,所涉及的术语可以是用于实现本发明一部分的技术手段或者其它总结性技术术语。例如,术语可以包括:
数据库:数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合;
索引:针对数据库中的某个或者某几个属性创建的一种有序数据结构。使用索引可以让数据库不需要扫描数据,而是直接定位到满足条件的索引记录,加速查询速度;
联合索引:数据库中对某个表中的多个属性同时创建的索引;
KV存储:基于key-value的存储,按照键值对形式进行组织,是一种常用的数据库存储结构;
字典序排序:是基于字母顺序排列的单词按字母顺序排列的方法。
由于联合索引同时涉及多个属性,当使用kv引擎进行存储时,被索引的多个属性在编码时会被放在连续的空间内,在这种情况下,就有可能造成多个数据的索引编码值相同,从而导致搜索到不相关的数据影响查询效率。
结合实例具体分析总结发现,存在如下原因导致上述问题:
首先,如下表1(原始数据表)所示:表中有P1和P2两个属性,这两个属性的数据类型都是字符串。另外,除了属性之外,还有原始数据对应的全局唯一的识别ID;
表1:原始数据表
Figure DEST_PATH_IMAGE001
索引建立:对属性P1和P2建立联合索引,记为IndexA,该联合索引相当于对P1和P2的排序,其中优先对P1进行字典序排序,如果P1相同,再对P2进行字典序排序,最后,保存索引到ID的映射,如下表2所示:
表2:联合索引indexA
Figure 902203DEST_PATH_IMAGE002
进一步的,通常会将该联合索引indexA中的被索引属性(P1+P2)按照某种编码方式保存为key,索引指向的原始数据的ID保存为value,常见的编码格式如下表3所示:
表3:联合索引indexA的编码格式
Figure DEST_PATH_IMAGE003
可以看出,采用传统的编码方式,ID为3,2,1,4,6的原始数据,其IndexA的key都完全相同。因此,在使用该种方式的联合索引时,会将这些被索引属性作为查询条件,从而导致在查询时扫描不必要的数据。
例如,使用indexA中的P1进行等值查询,找到满足P1为a的所有数据。在查询时,查询指令会被转换为在索引中查找前缀为a的数据,由于ID为1-6都满足前缀条件为a,因此,采用上述编码方式,会将ID为1-6的6条数据都扫描出来。但是,实际原始数据只有ID为2的一条数据(P1为a,P2为bcd)满足这个条件,因此,这种编码方式在查询时比较低效。
同理,在使用IndexA中的p1进行范围查询,查找满足p1大于等于abc的数据时,由于所有原始数据的key都大于abc,也会将所有数据都扫描出来,而实际原始数据表中只有ID为4、5、6的三个数据满足该条件(p1分别为abc、apple和abcd)。
综上,现有技术中,将多个被索引属性无缝的连接在一起,类似这样的编码方式会导致多个原始数据的索引编码完全相同,进而影响了查询性能,无论是等值查询还是范围查询,其查询效率均较低。
图2是根据本申请实施例的一种数据库联合索引编码方法的流程图,如图2所示,该流程包括如下步骤:
S201,确定数据库中目标数据表的各条原始数据;
其中,数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。
本实施例中,数据库可以但不限于是mysql 、SQL Server、Oracle等关系型数据,也可以是分布式数据库;数据库中保存有多个数据表,这些数据表可以是人员信息表、财税账单表等;。
S202,获取各条原始数据对应的识别ID、属性信息,其中,属性信息包括属性类型和属性值,且一条原始数据对应至少一组属性信息;
其中,在数据库中,每条数据都对应一个全局唯一的识别ID,该识别ID可以是1.2.3……N的数字;
进一步的,该属性信息反映各条数据在多个维度上的属性,例如,数据库中保存有一个班级学生信息表,其中,各个学生的学号对应上述识别ID。而属性信息包括属性类型和属性值,可以理解,属性类型可以是学生的性别、身高和年龄等类型,属性值是各个学生在各个属性类型下的具体值,例如性别(男)、身高(175cm)。另外,每条原始数据均至少包括一组属性信息。
需要说明的是,上述班级学生信息表仅是一种具体的举例,本申请技术方案在实际应用中,并不局限于应用在某一种数据表上,无论是对于数据量较大货较小、数据复杂程度高或低,或者不同领域的数据表,本申请实施例提供的技术方案都可灵活应用。
S203,对各条原始数据分别建立联合索引,其中,联合索引中,将各条原始数据和其对应的属性值编码结果存储为键值对形式,且不同属性类型的属性值编码结果之间设置有间隔Mark。
其中,“联合索引”已在术语解释部分和相关技术缺陷分析部分进行解释说明。此处需要说明的是,本申请中虽然与传统技术类似也采用联合索引,但是具体的,联合索引中“键”的编码方式与现有方式不同,且正是由于编码方式上的不同,本申请相比较于传统方式具备提高查询效率的有益效果。
在现有联合索引编码的基础上,通过在不同属性类型的属性值之间添加预设识别符作为间隔Mark,通过该间隔Mark有效的将不同原始数据的编码区分开来,从而在查询时,帮助用户在最便捷高效的前提下,有效提取出最匹配的目标数据。
采用本实施例中的联合索引方式如下表4所示:
表4:改进联合索引编码
key (p1 + p2) value (id)
\0\0abcd\0\0 3
a\0\0bcd\0\0 2
ab\0\0cd\0\0 1
abc\0\0d\0\0 4
abcd\0\0\0\0 6
apple\0\0apple\0\0 5
根据表4可以得知;采用本申请方案的的编码结果中,首先,各条数据条目的顺序,以及数据条目中属性值的排列顺序与现有联合索引完全一致;
其次,在不同类型的属性值之间(例如P1和P2之间),通过预设识别符区分开,从而解决现有编码方式导致多条数据编码结果相同,降低查询效率的问题。
通过上述步骤S201至S203,相比较于相关技术中的联合索引编码方法,本申请实施例在编码时通过在被索引属性值之间添加预设表示符作为Mark,进而区分开不同类型的属性值,避免不同属性的编码结果重合;在查询时,对应的只能匹配到正确的目标数据,从而较好的提升查询效率。
在其中一些实施例中,对各条原始数据分别建立联合索引,具体包括:
1.对各条原始数据对应的属性值,根据属性类型进行字典序排序;
2.对排序完成的属性值进行编码,编码过程中,在不同属性类型的属性值之间添加预设识别符作为间隔Mark;
引入间隔Mark之后,能够将不同类别的属性值区分,避免不同原始数据的索引编码相同,同时,还能完整保存索引的排序信息。在后续查询中,能够最大程度的减少查询量。
该预设标识符可以是“\0\”。需要说明的是,本实施例中,采用字符“\0\”作为预设标识符,还具备如下有益效果:
①采用“\0\”作为预设标识符,能够在编码和解码阶段,利用特殊的CPU指令(例如SSE2、AVX等)对索引进行向量化编码和解码,从而加速索引编解码效率。具体的,向量化处理可以一次在一个CPU指令周期内对多个字节进行处理,CPU指令集中也有很多指令能够方便的处理“\0”(例如判断将要处理的这几个字节内是否有\0)。
②由于字符“\0\”本身占用极小存储空间,因此,也能够在引入极小放大空间的前提下,提升查询效率。
3.将原始数据和其对应的属性值编码结果存储为键值对形式,其中,属性值编码结果为键,原始数据为值。
在其中一些实施例中,对各条原始数据分别建立联合索引之后,用户可以通过预设查询语句,在数据库中查询所需的目标原始数据,具体的:
可选的查询方式包括等值查询和范围查询,其中,等值查询就是根据“等于关系”来判断过滤条件,范围查询就是用“大于小于等数学上的条件”来判断过滤条件。
由于编码方式有所改变,在查询的时候,同样需要将查询条件做转换。本实施例中,预设查询语句包括属性值和预设标识符,预设标识符添加在相邻属性值之间作为查询语句的间隔Mark,属性值的不同序列对应不同属性类型,
在等值查询的情况下,通过预设查询语句,在所述数据库中查询目标数据包括:通过在所述数据库的KV存储引擎中,查找与查询语句中的属性值和预设标识符相等的目标键,并根据该目标键确定对应的目标值,得到所述目标数据;
在范围查询的情况下,通过预设查询语句,在所述数据库中查询目标数据包括:通过在所述数据库的KV存储引擎中,查找与所述查询语句中的属性值和预设标识符满足特定判别条件的至少一个目标键,并根据所述目标键确定对应的目标值,得到所述目标数据。具体的:
等值查询举例如下:
在查询满足P1属性为a的数据时,通过在索引中查找编码前缀为a\0\0的数据,拆分该段字符得到P1属性为“a”;进一步的,在kv存储引擎中查找key等于a的数据,由于只有ID为2的数据的索引编码“a\0\0bcd\0\0”满足该条件,所以查询结果能够精准匹配。也并不会出现有技术中,由于所有数据的编码都是“abcd”导致匹配到多个无关条目的问题。
范围查询举例如下:
在查询满足p1大于等于abc的数据时,通过在索引中查找编码大于等于abc的数据,在kv存储引擎中查找key大于等于abc的数据,可以直接发现ID为4、5、6的三个索引满足该条件,而不会去扫描不满足这个条件的相应数据。
在其中一些实施例中,在某条原始数据对应的属性值本身包含与预设标识符“0\0”部分相同的字符时,为避免索引建立错误,在编码时需要对该中类型的属性值做特殊处理,具体的,例如:
在不同属性类型的属性值之间,添加预设识别符\0\0作为间隔Mark,并将属性值内部的\0,将其重新编码为\0\1,具体的,举例说明如下:
数据库中某个表中有两个字符串属性P1和P2,原始数据如下表5所示:
表5:
id p1 p2
1 apple banana
2 apple\0 banana
其编码结果如下表6所示:
表6:
key value
apple\0\0banana\0\0 1
apple\0\1\0\0banana\0\0 2
可以看出,ID为1的数据由于属性中没有\0,将按方式进行编码。而ID为2的数据,其P1属性值包含一个\0,若直接进行编码就会导致和预设标识符无法区分,因此,需要将其编码为apple\0\1,使用\0\1代表原始数据中的\0,之后,再按上述方法进行编码,最终联合索引的编码值为apple\0\1\0\0banana\0\0。
与此对应的,在查询索引的过程中,系统也会固定将查询语言中的“\0\1”解码为\0,也能够得到原始属性值。
本实施例还提供了一种分布式图数据库的身份认证系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本申请实施例的一种数据库联合索引编码系统的结构框图,如图3所示,该系统包括:确定模块30、获取模块31和索引建立模块32,其中,
确定模块30用于,确定数据库中目标数据表的各条原始数据;
获取模块31用于,获取各条原始数据对应的识别ID、属性信息,其中,所述属性信息包括属性类型和属性值,且一条所述原始数据包括至少一组所述属性信息;
索引建立模块32用于,对各条原始数据分别建立联合索引,其中,联合索引中,将各条原始数据和其对应的属性值编码结果存储为键值对形式,且不同属性类型的属性值编码结果之间设置有间隔Mark。
在其中一些实施例中,索引建立模块对各条原始数据分别建立联合索引包括:
对各条原始数据对应的属性值,根据所述属性类型进行字典序排序;
对排序完成的属性值进行编码,编码过程中,在不同属性类型的属性值之间添加预设识别符以生成所述间隔Mark;
将所述原始数据和其对应的属性值编码结果存储为键值对形式,其中,所述属性值编码结果为键值对中的键,所述原始数据为键值对中的值。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库联合索引编码方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图4是根据本申请实施例的电子设备的内部结构示意图,如图4所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图4所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种数据库联合索引编码方法,数据库用于存储数据。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据库联合索引编码方法,其特征在于,所述方法包括:
确定数据库中目标数据表的各条原始数据;
获取各条原始数据对应的识别ID、属性信息,其中,所述属性信息包括属性类型和属性值,且一条所述原始数据包括至少一组所述属性信息;
对各条原始数据分别建立联合索引,其中,所述联合索引中,将各条原始数据和其对应的属性值编码结果存储为键值对形式,且不同属性类型的属性值编码结果之间设置有间隔Mark。
2.根据权利要求1所述的方法,其特征在于,对各条原始数据分别建立联合索引包括:
对各条原始数据对应的属性值,根据所述属性类型进行字典序排序;
对排序完成的属性值进行编码,编码过程中,在不同属性类型的属性值之间添加预设识别符以生成所述间隔Mark;
将所述原始数据和其对应的属性值编码结果存储为键值对形式,其中,所述属性值编码结果为键值对中的键,所述原始数据为键值对中的值。
3.根据权利要求1所述的方法,其特征在于,对各条原始数据分别建立联合索引之后,所述方法还包括:
通过预设查询语句在所述数据库中查询目标原始数据,其中,查询方式包括等值查询和范围查询,
所述预设查询语句包括属性值和预设标识符,所述预设标识符添加在相邻属性值之间,且不同属性值之间按照字典序排序。
4.根据权利要求3所述的方法,其特征在于:
在等值查询的情况下,通过预设查询语句,在所述数据库中查询目标数据包括:
通过在所述数据库的KV存储引擎中,查找与查询语句中的属性值和预设标识符相等的目标键,并根据该目标键确定对应的目标值,得到所述目标数据;
在范围查询的情况下,通过预设查询语句,在所述数据库中查询目标数据包括:
通过在所述数据库的KV存储引擎中,查找与所述查询语句中的属性值和预设标识符满足特定判别条件的至少一个目标键,并根据所述目标键确定对应的目标值,得到所述目标数据。
5.根据权利要求3所述的方法,其特征在于,所述预设标识符是\0\0。
6.根据权利要求5所述的方法,其特征在于,在任意一条原始数据的所述属性值中包括\0的情况下,对所述属性值进行编码包括:
在不同属性类型的属性值之间,添加所述预设标识符\0\0作为所述间隔Mark,并将属性值内部的\0,将其重新编码为\0\1。
7.一种数据库联合索引编码系统,其特征在于,所述系统包括:确定模块、获取模块和索引建立模块,其中,
所述确定模块用于,确定数据库中目标数据表的各条原始数据;
所述获取模块用于,获取各条原始数据对应的识别ID、属性信息,其中,所述属性信息包括属性类型和属性值,且一条所述原始数据包括至少一组所述属性信息;
所述索引建立模块用于,对各条原始数据分别建立联合索引,其中,所述联合索引中,将各条原始数据和其对应的属性值编码结果存储为键值对形式,且不同属性类型的属性值编码结果之间设置有间隔Mark。
8.根据权利要求7所述的系统,其特征在于,所述索引建立模块对各条原始数据分别建立联合索引包括:
对各条原始数据对应的属性值,根据所述属性类型进行字典序排序;
对排序完成的属性值进行编码,编码过程中,在不同属性类型的属性值之间添加预设识别符以生成所述间隔Mark;
将所述原始数据和其对应的属性值编码结果存储为键值对形式,其中,所述属性值编码结果为键,所述原始数据为值。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一条所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6中任一条所述的方法。
CN202211304082.XA 2022-10-24 2022-10-24 一种数据库联合索引编码方法和系统 Active CN115374129B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211304082.XA CN115374129B (zh) 2022-10-24 2022-10-24 一种数据库联合索引编码方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211304082.XA CN115374129B (zh) 2022-10-24 2022-10-24 一种数据库联合索引编码方法和系统

Publications (2)

Publication Number Publication Date
CN115374129A true CN115374129A (zh) 2022-11-22
CN115374129B CN115374129B (zh) 2023-02-03

Family

ID=84073480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211304082.XA Active CN115374129B (zh) 2022-10-24 2022-10-24 一种数据库联合索引编码方法和系统

Country Status (1)

Country Link
CN (1) CN115374129B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116662622A (zh) * 2023-07-25 2023-08-29 北京国科恒通科技股份有限公司 电网数据一致性比对方法及装置、介质及电子设备
CN116955363A (zh) * 2023-09-21 2023-10-27 北京四维纵横数据技术有限公司 无模式数据创建索引方法、装置、计算机设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109872402A (zh) * 2019-01-24 2019-06-11 腾讯科技(深圳)有限公司 3d模型处理方法、装置、计算机设备和存储介质
CN110413624A (zh) * 2019-08-07 2019-11-05 南京录信软件技术有限公司 一种基于列存的多列联合存储的方法
US20210320762A1 (en) * 2020-04-09 2021-10-14 Qualcomm Incorporated Orthogonal sequence generation for multi-bit payloads
CN114817243A (zh) * 2022-03-29 2022-07-29 平安国际智慧城市科技股份有限公司 数据库联合索引的建立方法、装置、设备及存储介质
CN114968972A (zh) * 2021-02-26 2022-08-30 腾讯科技(深圳)有限公司 索引优化方法、装置、设备及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109872402A (zh) * 2019-01-24 2019-06-11 腾讯科技(深圳)有限公司 3d模型处理方法、装置、计算机设备和存储介质
CN110413624A (zh) * 2019-08-07 2019-11-05 南京录信软件技术有限公司 一种基于列存的多列联合存储的方法
US20210320762A1 (en) * 2020-04-09 2021-10-14 Qualcomm Incorporated Orthogonal sequence generation for multi-bit payloads
CN114968972A (zh) * 2021-02-26 2022-08-30 腾讯科技(深圳)有限公司 索引优化方法、装置、设备及计算机可读存储介质
CN114817243A (zh) * 2022-03-29 2022-07-29 平安国际智慧城市科技股份有限公司 数据库联合索引的建立方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
孔兰菊等: "面向SaaS应用基于键值对模式的多租户索引研究", 《计算机学报》 *
李镇义等: "电网调度控制系统公共信息模型文件快速查询方法", 《电力系统自动化》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116662622A (zh) * 2023-07-25 2023-08-29 北京国科恒通科技股份有限公司 电网数据一致性比对方法及装置、介质及电子设备
CN116662622B (zh) * 2023-07-25 2023-10-31 北京国科恒通科技股份有限公司 电网数据一致性比对方法及装置、介质及电子设备
CN116955363A (zh) * 2023-09-21 2023-10-27 北京四维纵横数据技术有限公司 无模式数据创建索引方法、装置、计算机设备及介质
CN116955363B (zh) * 2023-09-21 2023-12-26 北京四维纵横数据技术有限公司 无模式数据创建索引方法、装置、计算机设备及介质

Also Published As

Publication number Publication date
CN115374129B (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
CN115374129B (zh) 一种数据库联合索引编码方法和系统
CN109299110B (zh) 数据查询方法、装置、存储介质和电子设备
US10866971B2 (en) Hash collision tables for relational operations
CN112199366A (zh) 数据表处理方法、装置及设备
CN107818115B (zh) 一种处理数据表的方法及装置
CN111459985B (zh) 标识信息处理方法及装置
US8862566B2 (en) Systems and methods for intelligent parallel searching
US9430478B2 (en) Anchor image identification for vertical video search
US7676453B2 (en) Partial query caching
CN112363979B (zh) 一种基于图数据库的分布式索引方法和系统
CN110457346B (zh) 数据查询方法、装置及计算机可读存储介质
US9454561B2 (en) Method and a consistency checker for finding data inconsistencies in a data repository
CN109325042B (zh) 处理模版获取方法、表格处理方法、装置、设备及介质
US9053207B2 (en) Adaptive query expression builder for an on-demand data service
CN107169003B (zh) 一种数据关联方法及装置
CN115757629A (zh) 多源异构数据增量同步方法、系统、存储介质和电子设备
CN114356968A (zh) 查询语句生成方法、装置、计算机设备及存储介质
CN111475464B (zh) 一种自动发现挖掘Web组件指纹的方法
WO2014191719A1 (en) Datasets profiling tools, methods, and systems
CN109344163B (zh) 一种数据校验方法、装置和计算机可读介质
CN110147396B (zh) 一种映射关系生成方法及装置
US10185742B2 (en) Flexible text searching for data objects of object notation
CN114048219A (zh) 图数据库更新方法及装置
CN113946365A (zh) 页面识别方法、装置、计算机设备和存储介质
CN114238334A (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