一种数据库联合索引编码方法和系统技术方案

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

【技术实现步骤摘要】
一种数据库联合索引编码方法和系统


[0001]本申请涉及数据库管理领域,特别是涉及一种数据库联合索引编码方法、系统、计算机设备和计算机可读存储介质。

技术介绍

[0002]数据库通常会对表中某些属性创建索引,索引是一种有序数据结构。当查询语句使用索引时,可以让数据库不需要扫描数据,即可直接定位到满足条件的索引记录,从而加速查询速度。
[0003]在相关技术中,由于联合索引涉及多个属性,当使用kv(key

value)引擎进行存储时,被索引的多个属性在编码时会被放在连续的空间内,因此,可能会使多条数据的索引编码值相同,进而导致在查询时扫描到不必要的数据,影响查询效率。
[0004]目前,针对相关技术中的联合索引编码方式,由于多个原始数据的索引编码相同,导致查询效率较低的问题,尚未提出有效的解决方案。

技术实现思路

[0005]本申请实施例提供了一种数据库联合索引编码方法、系统电子设备和计算机可读存储介质,以至少解决相关技术中联合索引编码方式查询效率较低的问题。
[0006]第一方面,本申请实施例提供了一种数据库联合索引编码方法,所述方法包括:确定数据库中目标数据表的各条原始数据;获取各条原始数据对应的识别ID、属性信息,其中,所述属性信息包括属性类型和属性值,且一条所述原始数据包括至少一组所述属性信息;对各条原始数据分别建立联合索引,其中,所述联合索引中,将各条原始数据和其对应的属性值编码结果存储为键值对形式,且不同属性类型的属性值编码结果之间设置有间隔Mark。
[0007]在其中一些实施例中,对各条原始数据分别建立联合索引包括:对各条原始数据对应的属性值,根据所述属性类型进行字典序排序;对排序完成的属性值进行编码,编码过程中,在不同属性类型的属性值之间添加预设识别符以生成所述间隔Mark;将所述原始数据和其对应的属性值编码结果存储为键值对形式,其中,所述属性值编码结果为键,所述原始数据为值。
[0008]在其中一些实施例中,对各条原始数据分别建立联合索引之后,所述方法还包括:通过预设查询语句在所述数据库中查询目标原始数据,其中,查询方式包括等值查询和范围查询,所述预设查询语句包括属性值和预设标识符,所述预设标识符添加在相邻属性值之间,且不同属性值之间按照字典序排序。
[0009]在其中一些实施例中,在等值查询的情况下,通过预设查询语句,在所述数据库中
查询目标数据包括:通过在所述数据库的KV存储引擎中,查找与查询语句中的属性值和预设标识符相等的目标键,并根据该目标键确定对应的目标值,得到所述目标数据;在范围查询的情况下,通过预设查询语句,在所述数据库中查询目标数据包括:通过在所述数据库的KV存储引擎中,查找与所述查询语句中的属性值和预设标识符满足特定判别条件的至少一个目标键,并根据所述目标键确定对应的目标值,得到所述目标数据。
[0010]在其中一些实施例中,所述预设标识符是\0\0。
[0011]在其中一些实施例中,在任意一条原始数据的所述属性值中包括\0的情况下,对所述属性值进行编码包括:在不同属性类型的属性值之间,添加所述预设识别符\0\0作为所述间隔Mark,并对属性值内部的\0,将其重新编码为\0\1。
[0012]第二方面,本申请实施例提供了一种数据库联合索引编码系统,所述系统包括:确定模块、获取模块和索引建立模块,其中,所述确定模块用于,确定数据库中目标数据表的各条原始数据;所述获取模块用于,获取各条原始数据对应的识别ID、属性信息,其中,所述属性信息包括属性类型和属性值,且一条所述原始数据包括至少一组所述属性信息;所述索引建立模块用于,对各条原始数据分别建立联合索引,其中,所述联合索引中,将各条原始数据和其对应的属性值编码结果存储为键值对形式,且不同属性类型的属性值编码结果之间设置有间隔Mark。
[0013]在其中一些实施例中,所述索引建立模块对各条原始数据分别建立联合索引包括:对各条原始数据对应的属性值,根据所述属性类型进行字典序排序;对排序完成的属性值进行编码,编码过程中,在不同属性类型的属性值之间添加预设标识符以生成所述间隔Mark;将所述原始数据和其对应的属性值编码结果存储为键值对形式,其中,所述属性值编码结果为键,所述原始数据为值。
[0014]第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的方法。
[0015]第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的方法。
[0016]相比于相关技术,本申请实施例提供的一种数据库联合索引编码方法,通过确定数据库中目标数据表的各条原始数据;获取各条原始数据对应的识别ID、属性信息,其中,属性信息包括属性类型和属性值,且一条原始数据包括至少一组属性信息;对各条原始数据分别建立联合索引,其中,联合索引中,将各条原始数据和其对应的属性值编码结果存储为键值对形式,且不同属性类型的属性值编码结果之间设置有间隔Mark。解决了相关技术中联合索引编码方式查询效率较低的问题,极大程度地减少了无关数据的扫描量,提升了查询效率。
附图说明
[0017]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本申请实施例的一种数据库联合索引编码方法的应用环境示意图;图2是根据本申请实施例的一种数据库联合索引编码方法的流程图;图3是根据本申请实施例的一种数据库联合索引编码系统的结构框图;图4是根据本申请实施例的电子设备的内部结构示意图。
具体实施方式
[0018]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0019]显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的
技术实现思路
的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
[0020]在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库联合索引编码方法,其特征在于,所述方法包括:确定数据库中目标数据表的各条原始数据;获取各条原始数据对应的识别ID、属性信息,其中,所述属性信息包括属性类型和属性值,且一条所述原始数据包括至少一组所述属性信息;对各条原始数据分别建立联合索引,其中,所述联合索引中,将各条原始数据和其对应的属性值编码结果存储为键值对形式,且不同属性类型的属性值编码结果之间设置有间隔Mark。2.根据权利要求1所述的方法,其特征在于,对各条原始数据分别建立联合索引包括:对各条原始数据对应的属性值,根据所述属性类型进行字典序排序;对排序完成的属性值进行编码,编码过程中,在不同属性类型的属性值之间添加预设识别符以生成所述间隔Mark;将所述原始数据和其对应的属性值编码结果存储为键值对形式,其中,所述属性值编码结果为键值对中的键,所述原始数据为键值对中的值。3.根据权利要求1所述的方法,其特征在于,对各条原始数据分别建立联合索引之后,所述方法还包括:通过预设查询语句在所述数据库中查询目标原始数据,其中,查询方式包括等值查询和范围查询,所述预设查询语句包括属性值和预设标识符,所述预设标识符添加在相邻属性值之间,且不同属性值之间按照字典序排序。4.根据权利要求3所述的方法,其特征在于:在等值查询的情况下,通过预设查询语句,在所述数据库中查询目标数据包括:通过在所述数据库的KV存储引擎中,查找与查询语句中的属性值和预设标识符相等的目标键,并根据该目标键确定对应的目标值,得到所述目标数据;在范围查询的情况下,通过预设查询语句,在所述数据库中查询目标数据包括:通过在所述数据库的KV存储引擎中,查找与所述查询语句中的属性值和预设标识符满足特定判别条件的至少一个目标键,并根据所述目标键确定对应的目标值,得...

【专利技术属性】
技术研发人员:王玉珏叶小萌
申请(专利权)人:杭州欧若数网科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1