System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请属于数据库,特别是涉及一种数据库二维表的可查询压缩方法。
技术介绍
1、随着大数据时代的发展,现实数据大幅度增长。结构化数据作为数据中的高质量部分,也日益增多。数据库管理系统在存储海量的结构化数据时,难免会出现存储空间不足的潜在问题。因此,数据压缩存储成为了当今数据库管理系统的核心功能之一。
2、通用压缩方法主要关注数据的统计特性,而不考虑数据的结构特征。这些方法可以应用于各种类型的数据,从文本到二进制文件都适用。通用压缩的核心思想是利用数据中的统计规律和冗余信息来减少数据的存储空间。常见的通用压缩技术有多种,比如空值压缩通过剔除空值节省空间;字典编码利用短代码替换重复数据项;块压缩分割数据块单独压缩以提高访问效率;游程编码简化连续重复数据;哈夫曼编码依据频率分配变长编码以达到理论最优压缩率;lz系列算法通过引用历史数据进行压缩。由于通用压缩方法在压缩数据后丢失了数据的结构特征,因此在针对压缩数据进行查询时,都需要全部或部分解压数据才能正常处理用户查询并返回查询结果。
3、考虑数据库二维表数据特征的压缩方法主要分成行式压缩和列式压缩两类。行式压缩主要利用元组之间的依赖关系来减少冗余元组,从而节省存储空间。但是,行式压缩难以处理动态变化的数据内容,因为数据的变更会导致元组之间的依赖关系不再成立。列式压缩主要利用列内数据的相似性实现高效压缩,减少存储空间并优化查询性能。
4、目前,现有技术中的列映射压缩方法支持不解压查询,但这些现有方法会显著影响数据写入和更新的性能,此外源列值与目标列值之间
5、前面的叙述在于提供一般的背景信息,并不一定构成现有技术。
技术实现思路
1、基于此,有必要针对上述问题,提出了一种数据库二维表的可查询压缩方法,能够更高效地执行二维表记录的增删改查操作。
2、本申请采用以下的技术方案来解决上述技术问题:
3、本申请提供了一种数据库二维表的可查询压缩方法,应用于一种数据库,数据库用于存储二维表,二维表的行由记录构成,二维表的列由主键和其他列字段构成,主键由字节数组表示,其他列字段的数据类型是字节数组类型和数值类型之一,每个记录中一个其他列字段的取值称为字段的字段值;数据库增加数据结构以压缩表示二维表;数据结构包括取值数组、字段值学习型映射树图、主键学习型映射树图;数据库包括多个取值数组,取值数组与字节数组类型的字段具备一一对应关系,取值数组存储对应字节数组类型的字段在二维表中所有不同的字段值;数据库包括多个字段值学习型映射树图,字段值学习型映射树图与字节数组类型的字段具备一一对应关系,字段值学习型映射树图用于存储字段值与字段值编号之间的映射关系,字段值编号为字段值在对应取值数组中的序号;字段值学习型映射树图包括多个节点;每个节点包括离散化模型、公共前缀和条目列表;离散化模型用于将裁剪上层公共前缀后的字段值映射到条目列表中的条目序号;公共前缀为对应节点为根的子树中所覆盖的所有字段值的公共部分;条目列表包括节点条目和数据条目;节点条目用于保存孩子节点指针;数据条目用于保存对应字段值的后缀和字段值编号;数据库包括一个主键学习型映射树图,主键学习型映射树图用于存储给定主键与其他列数值元组之间的映射关系,其他列数值元组中字节数组类型的字段值表示为对应取值数组中的序号,而其他列数值元组中数值类型的字段值表示为字段值自身;主键学习型映射树图包括多个节点;每个节点包括离散化模型、公共前缀和条目列表;离散化模型用于将裁剪上层公共前缀后的主键映射到条目列表中的条目序号;公共前缀为对应节点为根的子树中所覆盖的所有主键的公共部分;条目列表包括节点条目和数据条目;节点条目用于保存孩子节点指针;数据条目用于保存对应主键的后缀和其他列数值元组;方法包括如下步骤:执行构建操作,以构建所有字节数组类型字段的取值数组、所有字节数组类型字段的字段值学习型映射树图和唯一的主键学习型映射树图;根据收到操作指令对主键学习型映射树图进行增删改查操作,增删改查操作包括主键单点查询、主键范围查询、二维表记录添加操作、二维表记录删除操作和二维表记录修改操作。
4、在本申请一可选实施例中,当构造操作用于构造某个字节数组类型字段的字段值学习型映射树图时,构建操作,包括:获取二维表所存储的字节数组类型字段的全部字段值;根据全部字段值分别确定第一k-键数nh(a[1:k])和第二k-键数nh(a[1:k]),b;第一k-键数nh(a[1:k])定义为所有字段值中前缀的h函数值等于h(a[1:k])的字段值个数;第二k-键数nh(a[1:k]),b定义为前缀的h函数值等于h(a[1:k])的所有字段值中第k+1个字节等于b的字段值个数;k为字节数,b为字节;h为从字符数组映射到非负数的预设函数;根据第一k-键数和第二k-键数确定字节条件概率p(b|h(a[1:k])),计算方式为:
5、;
6、根据字节条件概率迭代定义字节数组概率p(a[1:k]):
7、p(a[1:0])=1;且对于任意k≥0,p(a[1:k+1])=p(a[1:k])·p(a[k+1]|h(a[1:k]));
8、根据字节条件概率p(b|h(a[1:k]))和字节数组概率p(a[1:k])迭代定义转换函数f(a[1:k]):
9、f(a[1:0])=0;且对于任意k≥0,
10、f(a[1:k+1])=f(a[1:k])+p(a[1:k])∑b∈{0,1,…,a[k+1]-1}p(b|h(a[1:k]));
11、根据字节数组类型字段的对应取值数组中所有字段值构建输入集{v1,…,vn},n为字节数组类型字段的不同字段值数目,vi为字段值,i∈[1,n],v1,…,vn升序排列;将字节数组类型字段的字段值学习型映射树图的根节点的公共前缀设置成空字节数组;根据字段值数目n和预设的期望条目数e确定根节点的条目个数n;将输入集作为转换函数f的输入,根据转换函数f的第一处理结果f(vi)构造离散化模型m;将输入集中每个字段值对应的第一处理结果作为离散化模型m的输入,以代入进行处理得到对应的第二处理结果;根据第二处理结果确定条目列表;根据第二处理结果确定条目列表,包括:假定m(f(v0))<m(f(v1))和m(f(vn))<m(f(vn+1))恒真,遍历所有第二处理结果m(f(vi));若存在i满足m(f(vi-1))<m(f(vi))<m(f(vi+1)),则将序号为m(f(vi))的条目确定为数据条目,数据条目用于保存vi的后缀和vi的编号;若存在i<j满足m(f(vi-1))<m(f(vi)) = m(f(vi+1)) = … = m(f(vj))<m(本文档来自技高网...
【技术保护点】
1.一种数据库二维表的可查询压缩方法,应用于一种数据库,所述数据库用于存储二维表,所述二维表的行由记录构成,所述二维表的列由主键和其他列字段构成,所述主键由字节数组表示,所述其他列字段的数据类型是字节数组类型和数值类型之一,每个记录中一个其他列字段的取值称为所述字段的字段值;
2.如权利要求1所述的数据库二维表的可查询压缩方法,其特征在于,当所述构造操作用于构造某个字节数组类型字段的所述字段值学习型映射树图时,所述构建操作,包括:
3.如权利要求1所述的数据库二维表的可查询压缩方法,其特征在于,当所述构造操作用于构造所述主键学习型映射树图时,所述构建操作,包括:
4.如权利要求2所述的数据库二维表的可查询压缩方法,其特征在于,所述根据所述字段值数目N和预设的期望条目数E确定所述根节点的条目个数n;将所述输入集作为所述转换函数F的输入,根据所述转换函数F的第一处理结果F(vi)构造所述离散化模型M,包括:
5.如权利要求1所述的数据库二维表的可查询压缩方法,其特征在于,所述主键单点查询操作,包括:
6.如权利要求1所述的数
7.如权利要求1所述的数据库二维表的可查询压缩方法,其特征在于,所述二维表记录删除操作,包括:
8.如权利要求1所述的数据库二维表的可查询压缩方法,其特征在于,所述二维表记录修改操作,包括:
9.如权利要求6、8中任一项所述的数据库二维表的可查询压缩方法,其特征在于,所述根据recordnew构造新数值元组,包括:
10.如权利要求2、6、7中任一项所述的数据库二维表的可查询压缩方法,其特征在于,所述新节点构造操作,包括:
...【技术特征摘要】
1.一种数据库二维表的可查询压缩方法,应用于一种数据库,所述数据库用于存储二维表,所述二维表的行由记录构成,所述二维表的列由主键和其他列字段构成,所述主键由字节数组表示,所述其他列字段的数据类型是字节数组类型和数值类型之一,每个记录中一个其他列字段的取值称为所述字段的字段值;
2.如权利要求1所述的数据库二维表的可查询压缩方法,其特征在于,当所述构造操作用于构造某个字节数组类型字段的所述字段值学习型映射树图时,所述构建操作,包括:
3.如权利要求1所述的数据库二维表的可查询压缩方法,其特征在于,当所述构造操作用于构造所述主键学习型映射树图时,所述构建操作,包括:
4.如权利要求2所述的数据库二维表的可查询压缩方法,其特征在于,所述根据所述字段值数目n和预设的期望条目数e确定所述根节点的条目个数n;将所述输入集作为所述转换函数...
【专利技术属性】
技术研发人员:杜剑峰,张世明,
申请(专利权)人:贝格迈思深圳技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。