本发明属于数据库,具体涉及面向双层索引结构bindex的数据写入优化方法。
背景技术:
1、在现有的双层索引结构bindex中,包含删除标记位向量与将原数据排序后得到的位置标号序列结构以加速数据查询。其位置标号序列设计为完全有序结构,随着数据量的增加会降低该序列插入新数据的更新速度,导致工作效率下降。因此如何位置标号序列不改变其二级索引功能的前提下提高更新效率,对该结构的组织形式与数据写入方式提出了新的要求。
技术实现思路
1、本发明的目的在于提供一种面向双层索引结构bindex的数据写入优化方法,以便于解决现有技术存在的双层索引结构bindex中有序位置标号序列更新效率低下的问题。
2、本发明首先提供一种面向双层索引结构bindex第二层的混合结构,包括位置标号序列按照区域扩展而成的多组数据内存块,以及每组数据内存块对应的块信息数组;
3、所述位置标号序列,是指将待索引的原始数据序列中的数据按照升序排列后,每个原始数据在排序完成的序列中的位置标号所形成的序列;上述过程中,排序前的原始数据序列称作“原始数组”,原始数组排序后得到的有序序列称作“临时数组”;
4、所述位置标号序列按照区域扩展,是将位置标号序列按照区域对每个值进行扩展,数据内存块也称作“数据块”或“原子逻辑块”,其内部可存储n个数值,而且所述存储的n个数值可以保持无序状态,不需要进行频繁排序;
5、所述块信息数组,包括每组数据块附带的存储该组所有数据块内所存储的最小值、数据块内存储值的数量和数据块内存地址。
6、具体地,该混合索引结构由s个区域组成;一个区域包含k个数据块和大小为k的块信息数组;数据块内值的范围在块之间保持整体有序,同一块内的存储的n个值保持无序;块信息数组存储该区域所包含的k个数据块的最小值、块内存储值的数量和块内存地址。
7、基于上述索引混合结构,本发明提供一种数据优化写入方法,首先是数据无序写入,具体步骤为:
8、s01.通过二分法在所述临时数组中查找到待写入数据范围;
9、s02.根据所述数据范围确定所述待写入数据所定位的区域;
10、s03.确定区域后,进一步通过遍历对应块信息数组中的最小值确定待写入数据所定位的数据块,确定待插入数据块;
11、s04.确定所述待插入数据块是否有可插入空间。
12、当步骤s04中判断待插入数据块有可插入空间时,s04后续写入过程包括如下步骤:
13、s11.写入数据追加到所述原始数组的末尾;
14、s12.将所述写入数据插入所述待插入数据块的末尾,并更新对应块信息数组。
15、当步骤s04中判断待插入数据块无可插入空间时,s04后续写入过程包括如下步骤:
16、s21.在所属区域范围内创建新数据块,其初始最小值取自所述原待插入数据块的中值;
17、s22.将所述待插入数据块中已存的n个值中较大的n/2个值移入新创建数据块,并更新对应块信息数组;
18、s23.写入数据追加到所述原始数组的末尾;
19、s24.经过比较原待插入数据块和新创建数据块的最小值后,重新确定待插入数据块,将所述待写入数据插入所选数据块的末尾,并更新对应块信息数组。
20、对于上述数据无序写入方法,通过批量更新块信息数组,进一步优化数据写入,具体步骤为:
21、s01.所述数据无序写入方法,将待插入值预先分配指定插入的区域及数据块;
22、s02.待插入值达到一定数量后,依据所述数据无序写入方法判断能否插入预先分配的数据块,剩余空间允许插入的数据块进行在其末尾直接插入;
23、s03.对于剩余空间不足的数据块,将数据块中原有数据和待插入的数据形成一个数组,共同计算需要占用数据块的数量,表示为n;
24、s04.通过随机快速选择法分别定位数组中升序第1/n、2/n、3/n、……、(n-1)/n大的n-1个值,用来作为数据块的最小值,创建n-1个新数据块;
25、s05.将原有数据和待插入数据形成的数组中的值对应分配至相应范围内的数据块中,并更新对应块信息数组。
26、上述更新完成后,检查各区域内包含值数量的相对标准偏差(rsd),当rsd达到指定阈值,即各区域中的值分布不平衡时,重建整个索引。该阈值是基于数据库系统性能要求的可调整数字,用于在最坏情况查询性能和索引重建成本之间进行权衡。
27、本发明的有益效果在于:
28、本发明提供的混合无序索引结构及数据优化写入方法,显著地减少插入过程中由于频繁排序导致的大量数据移动次数,而且在所涉及的更新中分摊了内存块拆分成本。显著提高了频繁插入操作的索引更新性能;此外批量化更新利用缓存局部性避免了频繁的内存访问进一步了提高索引更新性能。
1.一种双层索引结构bindex第二层的混合结构,其特征在于,包括位置标号序列按照区域扩展而成的多组数据内存块,以及每组数据内存块对应的块信息数组;
2.一种基于权利要求1所述的双层索引结构bindex第二层的混合结构的数据优化写入方法,其特征在于,首先是数据无序写入,具体步骤为:
3.根据权利要求2所述的数据优化写入方法,其特征在于:
4.根据权利要求3所述的数据优化写入方法,其特征在于,所述更新对应块信息数组,具体步骤为:
5.根据权利要求4所述的数据优化写入方法,其特征在于,块信息数组更新完成后,检查各区域内包含值数量的相对标准偏差(rsd),当rsd达到指定阈值,即各区域中的值分布不平衡时,重建整个索引;该阈值是基于数据库系统性能要求的可调整数字,用于在最坏情况查询性能和索引重建成本之间进行权衡。