一种用于区块链数据上链的多字段组合索引取数的优化算法制造技术

技术编号:28373596 阅读:12 留言:0更新日期:2021-05-08 00:00
本发明专利技术公开了一种用于区块链数据上链的多字段组合索引取数的优化算法,操作步骤如下:数据库系统提供的SQL命令或其内嵌工具,获取数据表的结构;提取其组合索引;对组合索引中的每一个字段的值进行DISTINCT去重操作计算取出的组合索引各个字段值的唯一值计数;对组合索引内数值进行排序,排序手法采用ORDER;对非递减式排序进行标识,找出断点的位置;按照断点对数据进行分段,根据分段进行读取数据。本发明专利技术的好处是一方面充分组合索引的性能提升读取效率,另外服务于最大化并行处理和最小化读取批次二个目标,实现最高效率的读取和处理效率,同时保证数据范围的非重叠性,以确保应用功能上的正确性。

【技术实现步骤摘要】
一种用于区块链数据上链的多字段组合索引取数的优化算法
本专利技术涉及区块链领域,特别涉及一种用于区块链数据上链的多字段组合索引取数的优化算法。
技术介绍
关系数据库系统由于其结构化的数据管理能力和标准化SQL接口,已广泛应用于各个领域和行业应用。利用数据库的数据导出工具可以方便地将数据导出为字节流文件和数据库系统支持的特定格式文件。数据库系统的索引功能为记录级的查找和定位提供了极大的方便,能够快速地进行单条记录的查找和定位,以及根据该单字段值的范围选择,且在多线程处理的条件,各个线程可以根据该索引字段的取值,在数据范围相互隔离的区间内进行并行处理和分析工作。但对于多字段组合唯一索引的情况,在有效利用索引的前提下,如何精确地划分各个隔离的数据范围,实现最大化并行处理或者最小化读取批次这二个目标,传统的做法通常是利于单个索引字段或部分索引来定位和划分,该方法的好处是实现简单,但弊端是一方面不能充分组合索引的性能造成读取效率下降,另外由于单字段或者部分字段的取值空间不能反映组合索引全字段的取值空间,造成各个线程的处理数据范围存在重叠情况,也即存在数据重复读取和重复处理的情况,这样增加了处理的时间和资源开销,另外这种重复处理还会造成功能上的错误,为此,我们提出一种用于区块链数据上链的多字段组合索引取数的优化算法来解决上述问题。
技术实现思路
本专利技术实现了一种新颖的组合索引并行化读取和处理的方法,可以服务于最大化并行处理和最小化读取批次二个目标,实现最高效率的读取和处理效率,同时保证数据范围的非重叠性,以确保应用功能上的正确性。本专利技术的上述技术目的是通过以下技术方案得以实现的:一种用于区块链数据上链的多字段组合索引取数的优化算法,操作步骤如下:S1.通过数据库系统提供的SQL命令或其内嵌工具,获取数据表的结构;S2.提取其组合索引,如果存在多个组合索引,则任意选取其中一个;(组合索引为读取数据的标识,取其中一个进行操作)S3.对组合索引中的每一个字段的值进行DISTINCT去重操作计算取出的组合索引各个字段值的唯一值计数,形式化表示为COUNT(DISTINCT());S4.对组合索引内数值进行排序,排序手法采用ORDER;S5.对非递减式排序进行标识,找出断点的位置;S6.按照断点对数据进行分段,根据分段进行读取数据,保证读取数据的完整性。进一步的,步骤S4中:A.2对步骤4.A.1的组合索引的每个字段,执行如下操作:扫描字段的全部值,寻找断点,也即不满足非递减顺序的,以步骤4.A.1的排序结果为例,存在蓝色标志的字段值即为该字段的断点。全部处理后,结果如下:第一个排序字段,也即F3,不存在断点,因为其所有取值都是满足非递减顺序的,因此在实际操作和算法实现过程中,可以跳过对其的处理。A.3以步骤A.2的结果进行范围切分:A.3.1顺序扫描组合索引的每一行,直至遇到包含蓝色标志列的行;A.3.2将包含蓝色标志列的上一行标志为绿色,作为区间的下边界;A.3.3从包含蓝色标志列的行继续扫描,直至遇到下一个包含蓝色标志列的行;A.3.4以步骤A.3.3为参照,跳到步骤A.3.2进行循环,直至全部数据行扫描完毕,结果如下:A.4标注为绿色的行即为范围区块的下边界,上边界为白色行或其自身,也即区块范围内不能包含超过1行的绿色标注行。进一步的,最终形成的数据区块上下边界为:上边界,下边界{[1,1,1],[1,1,2]}{[1,2,1],[1,2,1]}{[2,1,1],[2,1,2]}{[2,2,1],[2,2,1]}{[3,1,1],[3,1,2]}{[3,2,1],[3,2,1]}{[4,1,2],[4,1,2]}A.5步骤A.4的结果即划定了数据处理的区间范围,任何跨越两个区间的取数则会造成数据获取不全或丢失的情况。进一步的,B.1根据步骤3计算出的组合索引各字段的唯一值计数,由小到大排列,以步骤3的数据为例,即F1、F2、F3,执行如下操作:ORDERBYF1ASC,F2ASC,F3ASC获得排序结果如下:F1,F2,F3{1,1,1}{1,1,2}{1,1,3}{1,2,1}{1,2,2}{1,2,3}{1,2,4}{2,1,1}{2,1,2}{2,1,3}B.2对步骤B.1的组合索引的每个字段,执行如下操作:扫描字段的全部值,寻找断点,也即不满足非递减顺序的,以步骤B.1的排序结果为例,存在蓝色标志的字段值即为该字段的断点。全部处理后,结果如下:第一个排序字段,也即F1,不存在断点,因为其所有取值都是满足非递减顺序的,因此在实际操作和算法实现过程中,可以跳过对其的处理。进一步的,B.3以步骤B.2的结果进行范围切分:B.3.1顺序扫描组合索引的每一行,直至遇到包含蓝色标志列的行;B.3.2将包含蓝色标志列的上一行标志为绿色,作为区间的下边界;B.3.3从包含蓝色标志列的行继续扫描,直至遇到下一个包含蓝色标志列的行;B.3.4以步骤B.3.3为参照,跳到步骤B.3.2进行循环,直至全部数据行扫描完毕,结果如下:B.4标注为绿色的行即为范围区块的下边界,上边界为白色行或其自身,也即区块范围内不能包含超过1行的绿色标注行。进一步的,最终形成的数据区块上下边界为:上边界,下边界{[1,1,1],[1,1,3]}{[1,2,1],[1,2,4]}{[2,1,1],[2,1,3]}B.5步骤B.4的结果即划定了数据处理的区间范围,任何跨越两个区间的取数则会造成数据获取不全或丢失的情况。进一步的,考虑一种特殊情况,也即不存在蓝色标注列的情况,以下列数据为例:F1,F2,F3{1,1,1}{2,2,2}{3,3,3}{3,4,5}在这种情况下,区间范围的划分可以为1个区间到N个区间,N的取值等于行数,此时等价于各个字段值等于取数。1个区间:上边界,下边界{[1,1,1],[3,4,5]}2个区间,共3种情况:2.1:上边界,下边界{[1,1,1],[1,1,1]}{[2,2,2],[3,4,5]}2.2:上边界,下边界{[1,1,1],[2,2,2]}{[3,3,3],[3,4,5]}2.3:上边界,下边界{[1,1,1],[3,3,3]}{[3,4,5],[3,4,5]}3个区间,共3种情况:3.1:上边界,下边界{[1,1,1],[1,1,1]}{[2,2,2],[2,2,2]本文档来自技高网...

【技术保护点】
1.一种用于区块链数据上链的多字段组合索引取数的优化算法,其特征在于:包括操作步骤如下:/nS1.通过数据库系统提供的SQL命令或其内嵌工具,获取数据表的结构;/nS2.提取其组合索引,如果存在多个组合索引,则任意选取其中一个;/nS3.对组合索引中的每一个字段的值进行DISTINCT去重操作计算取出的组合索引各个字段值的唯一值计数;/nS4.对组合索引内数值进行排序,排序手法采用ORDER;/nS5.对非递减式排序进行标识,找出断点的位置;/nS6.按照断点对数据进行分段,根据分段进行读取数据,保证读取数据的完整性。/n

【技术特征摘要】
1.一种用于区块链数据上链的多字段组合索引取数的优化算法,其特征在于:包括操作步骤如下:
S1.通过数据库系统提供的SQL命令或其内嵌工具,获取数据表的结构;
S2.提取其组合索引,如果存在多个组合索引,则任意选取其中一个;
S3.对组合索引中的每一个字段的值进行DISTINCT去重操作计算取出的组合索引各个字段值的唯一值计数;
S4.对组合索引内数值进行排序,排序手法采用ORDER;
S5.对非递减式排序进行标识,找出断点的位置;
S6.按照断点对数据进行分段,根据分段进行读取数据,保证读取数据的完整性。


2.根据权利要求1所述的一种用于区块链数据上链的多字段组合索引取数的优化算法,其特征在于:所述步骤S4中:A.2对步骤4.A.1的组合索引的每个字段,执行如下操作:
扫描字段的全部值,寻找断点,也即不满足非递减顺序的,以步骤4.A.1的排序结果为例,存在蓝色标志的字段值即为该字段的断点。


3.根据权利要求2所述的一种用于区块链数据上链的多字段组合索引取数的优化算法,其特征在于:扫描全部处理后,结果如下:
第一个排序字段,也即F3,不存在断点,因为其所有取值都是满足非递减顺序的,因此在实际操作和算法实现过程中,可以跳过对其的处理,
A.3以步骤A.2的结果进行范围切分:
A.3.1顺序扫描组合索引的每一行,直至遇到包含蓝色标志列的行;
A.3.2将包含蓝色标志列的上一行标志为绿色,作为区间的下边界;
A.3.3从包含蓝色标志列的行继续扫描,直至遇到下一个包含蓝色标志列的行;
A.3.4以步骤A.3.3为参照,跳到步骤A.3.2进行循环,直至全部数据行扫描完毕,结果如下:
A.4标注为绿色的行即为范围区块的下边界,上边界为白色行或其自身,也即区块范围内不能包含超过1行的绿色标注行。


4.根据权利要求3所述的一种用于区块链数据上链的多字段组合索引取数的优化算法,其特征在于:所述最终形成的数据区块上下边界为:
上边界,下边界
{[1,1,1],[1,1,2]}
{[1,2,1],[1,2,1]}
{[2,1,1],[2,1,2]}
{[2,2,1],[2,2,1]}
{[3,1,1],[3,1,2]}
{[3,2,1],[3,2,1]}
{[4,1,2],[4,1,2...

【专利技术属性】
技术研发人员:洪薇洪健李京昆刘文思
申请(专利权)人:湖北宸威玺链信息技术有限公司
类型:发明
国别省市:湖北;42

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

1