数据库共享字典压缩方法、装置、电子设备及存储介质制造方法及图纸

技术编号:36832645 阅读:15 留言:0更新日期:2023-03-12 01:55
本申请实施例公开了一种数据库共享字典压缩方法、装置、电子设备及存储介质,涉及数据压缩技术领域,通过对数据页执行写入操作,将写入数据写入到数据行中,当写入数据达到预设阈值后利用其训练字典,然后在数据页中存储第一元数据,记录数据页和字典的映射关系,再将训练完成的字典存储到单独的字典文件中,最后根据映射关系从字典文件选取对应的字典对数据页的数据行的写入数据进行压缩,压缩过程中对第一元数据保持未压缩状态,从而有效减小了解压次数,采用少量写入数据训练字典,提升字典训练效率,并且以独立的文件存储字典,缓存到内存中便于查询及管理,有效提升了数据库性能。能。能。

【技术实现步骤摘要】
数据库共享字典压缩方法、装置、电子设备及存储介质


[0001]本申请涉及数据压缩
,特别是涉及一种数据库共享字典压缩方法、装置、电子设备及存储介质。

技术介绍

[0002]随着信息时代的不断发展,各种信息数据也随之呈指数级增长,无论是传输还是存储等存在对数据处理的过程,对数据进行压缩均有效节省空间并降低成本。其中数据库压缩是针对数据库存储的内容进行压缩存储以节约空间的一种方法,而字典压缩是目前使用最广的一种压缩算法,但是相关技术中的数据库字典压缩算法存在压缩率低,或者字典与数据共同存储难以管理等问题。

技术实现思路

[0003]本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请实施例提供了一种数据库共享字典压缩方法、装置、电子设备及存储介质,能够提高数据库数据的压缩率,同时基于映射关系将数据页和字典关联起来,便于快速查找对应的字典对数据进行压缩和解压从而提升数据库性能,也便于字典的存储管理。
[0004]第一方面,本申请实施例提供了一种数据库共享字典压缩方法,应用于数据库,所述数据库包括多个数据库表,所述数据库表包括多个数据页,所述数据页包括多个数据行,所述方法包括:对所述数据页执行写入操作,所述写入操作用于将写入数据写入多个所述数据行;当所述数据库表的写入数据达到预设阈值后,利用所述写入数据训练至少一个字典;所述数据页存储有第一元数据,所述数据行存储有第二元数据,所述第一元数据用于存储所述字典与至少一个所述数据页的映射关系,所述第二元数据用于存储所述数据行的属性信息;将训练完成的所述字典存储到字典文件中;基于所述映射关系,从所述字典文件中选取对应的所述字典对所述数据页中所述数据行的所述写入数据进行压缩。
[0005]在本申请的一些实施例中,所述当所述数据库表的写入数据达到预设阈值后,利用所述写入数据训练至少一个字典,还包括:获取所述数据库表中未压缩的所述数据页的未压缩数量;当所述未压缩数量达到预设数量阈值后,将未压缩的所述数据页的写入数据作为字典训练数据;将所述字典训练数据输入字典生成模型,生成多个所述字典,所述字典的数量为预设数量。
[0006]在本申请的一些实施例中,所述将所述字典训练数据输入字典生成模型,生成多
个所述字典,还包括:根据所述字典训练数据和预设压缩率生成所述预设数量和字典大小;将所述字典训练数据输入字典生成模型,基于所述预设数量和所述字典大小生成多个所述字典;基于所述映射关系生成所述数据页对所述字典的所述第一元数据。
[0007]在本申请的一些实施例中,所述当所述未压缩数量达到预设数量阈值后,将未压缩的所述数据页的写入数据作为字典训练数据,还包括:将未压缩的所述数据页的写入数据作为初始字典训练数据;按照预设选取策略从所述初始字典训练数据中选取得到所述字典训练数据。
[0008]在本申请的一些实施例中,所述按照预设选取策略从所述初始字典训练数据中选取得到所述字典训练数据,还包括:获取训练数据阈值;根据所述训练数据阈值在所述初始字典训练数据中随机选取或者预设位置选取对应数量大小的数据作为所述字典训练数据。
[0009]在本申请的一些实施例中,所述基于所述映射关系从所述字典文件中选取对应的所述字典对所述数据页中所述数据行的所述写入数据进行压缩之后,还包括:若所述数据页的压缩比未达到预设压缩阈值,则将所述数据页的所述写入数据作为备选数据;获取新增写入数据;利用所述新增写入数据和所述备选数据训练所述字典,以更新所述数据页的字典;利用更新后的所述字典对所述数据页进行压缩。
[0010]在本申请的一些实施例中,所述第一元数据存储在所述数据页的第一预设位置,所述第一元数据包括:字典文件名、文件偏移量、字典长度中的一种或多种。
[0011]在本申请的一些实施例中,所述第二元数据存储在所述数据行的第二预设位置,所述第二元数据包括:行数据长度和/或行事务信息。
[0012]在本申请的一些实施例中,所述字典与至少一个所述数据页的映射关系根据预设映射规则生成,所述预设映射规则包括连续映射规则、非连续映射规则或内容相关映射规则;当所述预设映射规则为连续映射规则时,选取连续的第一数量的数据页与同一所述字典关联;当所述预设映射规则为非连续映射规则时,选取非连续的第二数量的数据页与同一所述字典关联;当所述预设映射规则为内容相关映射规则时,选取写入数据存在相关性的第三数量的数据页与同一所述字典关联。
[0013]在本申请的一些实施例中,对所述数据库表中所述数据页的所述写入数据进行压缩时,对所述数据页的所述第一元数据和每个所述数据页中所述数据行的所述第二元数据不进行压缩。
[0014]在本申请的一些实施例中,所述基于所述映射关系从所述字典文件中选取对应的
所述字典对所述数据页中所述数据行的所述写入数据进行压缩之后,还包括:对压缩后的所述数据行进行解压,得到对应的所述写入数据;所述解压的过程包括:读取所述数据页的所述第一元数据,得到所述映射关系;利用所述映射关系在所述字典文件查找对应的所述字典;利用所述字典对所述数据行的所述写入数据进行解压。
[0015]第二方面,本申请实施例还提供了一种数据库共享字典压缩装置,包括:写入模块,用于对数据页执行写入操作,所述写入操作用于将写入数据写入多个数据行;训练模块,用于当数据库表的所述写入数据达到预设阈值后,利用所述写入数据训练至少一个字典;存储模块,用于将训练完成的所述字典存储到字典文件中;压缩模块,用于基于映射关系从所述字典文件中选取对应的所述字典对所述数据页中所述数据行的所述写入数据进行压缩。
[0016]第三方面,本申请实施例还提供了一种电子设备,包括存储器、处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如本申请第一方面实施例所述的数据库共享字典压缩方法。
[0017]第四方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如本申请第一方面实施例所述的数据库共享字典压缩方法。
[0018]本申请实施例至少包括以下有益效果:本申请实施例提供了一种数据库共享字典压缩方法、装置、电子设备及存储介质,首先对数据库表中的数据页执行写入操作,将写入数据写入到数据页的数据行中,当写入数据达到预设阈值后利用其训练字典,然后在数据页中存储第一元数据,记录数据页和字典的映射关系,再将训练完成的字典存储到单独的字典文件中,最后根据映射关系从字典文件选取对应的字典对数据页的数据行的写入数据进行压缩,该过程中通过采用达到预设阈值的写入数据训练字典,在提升字典训练速度的同时提高压缩率,并且以独立的文件存储字典便于管理,基于映射关系将数据页和字典关联起来便于查找对应的字典进行压缩和解压等。
[0019]本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
[0020]本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库共享字典压缩方法,其特征在于,应用于数据库,所述数据库包括多个数据库表,所述数据库表包括多个数据页,所述数据页包括多个数据行;所述方法包括:对所述数据页执行写入操作,所述写入操作用于将写入数据写入多个所述数据行;当所述数据库表的写入数据达到预设阈值后,利用所述写入数据训练至少一个字典;所述数据页存储有第一元数据,所述数据行存储有第二元数据,所述第一元数据用于存储所述字典与至少一个所述数据页的映射关系,所述第二元数据用于存储所述数据行的属性信息;将训练完成的所述字典存储到字典文件中;基于所述映射关系,从所述字典文件中选取对应的所述字典对所述数据页中所述数据行的所述写入数据进行压缩。2.根据权利要求1所述的数据库共享字典压缩方法,其特征在于,所述当所述数据库表的写入数据达到预设阈值后,利用所述写入数据训练至少一个字典,还包括:获取所述数据库表中未压缩的所述数据页的未压缩数量;当所述未压缩数量达到预设数量阈值后,将未压缩的所述数据页的写入数据作为字典训练数据;将所述字典训练数据输入字典生成模型,生成多个所述字典,所述字典的数量为预设数量。3.根据权利要求2所述的数据库共享字典压缩方法,所述将所述字典训练数据输入字典生成模型,生成多个所述字典,还包括:根据所述字典训练数据和预设压缩率生成所述预设数量和字典大小;将所述字典训练数据输入字典生成模型,基于所述预设数量和所述字典大小生成多个所述字典;基于所述映射关系生成所述数据页对所述字典的所述第一元数据。4.根据权利要求2所述的数据库共享字典压缩方法,所述当所述未压缩数量达到预设数量阈值后,将未压缩的所述数据页的写入数据作为字典训练数据,还包括:将未压缩的所述数据页的写入数据作为初始字典训练数据;按照预设选取策略从所述初始字典训练数据中选取得到所述字典训练数据。5.根据权利要求4所述的数据库共享字典压缩方法,所述按照预设选取策略从所述初始字典训练数据中选取得到所述字典训练数据,还包括:获取训练数据阈值;根据所述训练数据阈值在所述初始字典训练数据中随机选取或者预设位置选取对应数量大小的数据作为所述字典训练数据。6.根据权利要求1所述的数据库共享字典压缩方法,其特征在于,所述基于所述映射关系从所述字典文件中选取对应的所述字典对所述数据页中所述数据行的所述写入数据进行压缩之后,还包括:若所述数据页的压缩比未达到预设压缩阈值,则将所述数据页的所述写入数据作为备选数据;获取新增写入数据;利用所述新增写入数据和所述备选数据训练所述字典,以更新所述数据页的字典;

【专利技术属性】
技术研发人员:林科旭张程伟张皖川
申请(专利权)人:本原数据北京信息技术有限公司
类型:发明
国别省市:

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

1