数据遍历方法、数据库、电子设备及计算机存储介质与流程

xiaoxiao1月前  21



1.本技术实施例涉及计算机技术领域,尤其涉及一种数据遍历方法、数据库、电子设备及计算机存储介质。


背景技术:

2.对数据库中的数据进行遍历,以查询到符合查询条件的数据,是数据库的常见手段。但是,一般进行数据遍历时,由于不知道需要遍历的数据量有多大,即面对未知量级的数据进行数据遍历操作时,会采用一定的手段控制每次遍历的数据量。
3.例如,一种手段可以为分页遍历模式,即将数据库中的数据进行分页后,按照页数及每页的数据量进行顺序遍历,来控制每次遍历数据的范围,这种遍历方式最大的缺点是随着页码的增大,会增加数据库的随机1/0次数,降低数据库的查询性能;另一种手段主要适用于主键分布均匀的场景下,可以通过主键对数据进行均匀的数据划分,但该种方式的缺点在于数据的主键必须分布均匀,通用性较差。
4.有鉴于此,现有技术亟需解决的技术问题是提供另一种数据遍历方案,在尽量不降低数据库查询性能的基础上有较高的通用性。


技术实现要素:

5.有鉴于此,本技术实施例提供一种数据遍历方案,以至少部分解决上述问题。
6.根据本技术实施例的第一方面,提供了一种数据库的数据遍历方法,包括:确定待遍历数据对应的当前游标区间,并基于游标遍历当前游标区间中的数据,确定被遍历的数据总量;根据所述数据总量以及预先确定的区间单位,计算当前游标区间在所述区间单位内的平均数据量,其中,所述区间单位为衡量所述待遍历数据的数据范围单位;根据所述区间单位对应的平均数据量,确定下一游标区间对应的区间单位的数量,以确定下一个游标区间。
7.根据本技术实施例的第二方面,提供了一种数据筛选方法,包括:获得第一筛选条件和第二筛选条件,其中,所述第一筛选条件为用于通过数据库索引进行筛选的条件,所述第二筛选条件为不能通过所述数据库索引进行筛选的条件;基于所述数据库索引进行所述第一筛选条件对应的查询操作,得到待遍历数据;获得所述待遍历数据对应的当前游标区间,并将所述第二筛选条件作为查询条件,基于游标遍历当前游标区间中的数据,得到与所述第二筛选条件匹配的数据,以及确定被遍历的数据总量;根据所述数据总量以及预先确定的区间单位,计算当前游标区间在所述区间单位内的平均数据量,其中,所述区间单位为衡量所述待遍历数据的数据范围单位;根据所述区间单位对应的平均数据量,确定下一游标区间对应的区间单位的数量,以确定下一个游标区间,并继续执行所述将所述第二筛选条件作为查询条件,基于游标遍历当前游标区间中的数据,得到与所述第二筛选条件匹配的数据,以及确定被遍历的数据总量的步骤。
8.根据本技术实施例的第三方面,提供了一种数据库,包括:数据区间遍历模块,用
于确定待遍历数据对应的当前游标区间,并基于游标遍历当前游标区间中的数据,确定被遍历的数据总量;数据区间稳定划分模块,用于根据所述数据总量以及预先确定的区间单位,计算当前游标区间在所述区间单位内的平均数据量,其中,所述区间单位为衡量所述待遍历数据的数据范围单位,以根据所述区间单位对应的平均数据量,确定下一游标区间对应的区间单位的数量,以确定下一个游标区间。
9.根据本技术实施例的第四方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上所述方法对应的操作。
10.根据本技术实施例的第五方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的方法。
11.根据本技术实施例提供的数据遍历方案,通过确定待遍历数据对应的当前游标区间,并基于游标遍历当前游标区间中的数据,确定被遍历的数据总量;根据所述数据总量以及预先确定的区间单位,计算当前游标区间在所述区间单位内的平均数据量,其中,所述区间单位为衡量所述待遍历数据的数据范围单位;根据所述区间单位对应的平均数据量,确定下一游标区间对应的区间单位的数量,以确定下一个游标区间,无需建立新的索引、遍历过程不依赖均匀分布的主键,通用性较好,且可以减少遍历过程中的i/o次数,保证了数据库的查询性能。
附图说明
12.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
13.图1为适用本技术实施例的数据遍历方法的示例性系统的示意图;
14.图2为根据本技术实施例的一种数据遍历方法的步骤流程图;
15.图3为根据本技术实施例的一种遍历游标区间中数据的方法的步骤流程图;
16.图4为根据本技术实施例三的一种数据筛选方法的步骤流程图;
17.图5为根据本技术实施例四的一种数据库的结构框图;
18.图6为根据本技术实施例五的一种电子设备的结构示意图。
具体实施方式
19.为了使本领域的人员更好地理解本技术实施例中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术实施例一部分实施例,而不是全部的实施例。基于本技术实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本技术实施例保护的范围。
20.下面结合本技术实施例附图进一步说明本技术实施例具体实现。
21.图1示出了一种适用本技术实施例的数据遍历方法的示例性系统。如图1所示,该系统可以包括云服务端102、通信网络104和/或一个或多个用户设备106,图1中示例为多个
用户设备。
22.云服务端102可以是用于存储信息、数据、程序和/或任何其他合适类型的内容的任何适当的设备,包括但不限于分布式存储系统设备、服务器集群、计算云服务端集群等。在一些实施例中,云服务端102可以执行任何适当的功能。例如,在一些实施例中,云服务端102可以作为数据库,用于存储并遍历数据。
23.在一些实施例中,通信网络104可以是一个或多个有线和/或无线网络的任何适当的组合。例如,通信网络104能够包括以下各项中的任何一种或多种:互联网、内联网、广域网(wan)、局域网(lan)、无线网络、数字订户线路(dsl)网络、帧中继网络、异步转移模式(atm)网络、虚拟专用网(vpn)和/或任何其它合适的通信网络。用户设备106能够通过一个或多个通信链路(例如,通信链路112)连接到通信网络104,该通信网络104能够经由一个或多个通信链路(例如,通信链路114)被链接到云服务端102。通信链路可以是适合于在用户设备106和云服务端102之间传送数据的任何通信链路,诸如网络链路、拨号链路、无线链路、硬连线链路、任何其它合适的通信链路或此类链路的任何合适的组合。
24.用户设备106可以包括适合于设置筛选条件、接收针对数据库的数据查询操作、展示查询到的数据等任何一个或多个用户设备。在一些实施例中,用户设备106可以包括任何合适类型的设备。例如,在一些实施例中,用户设备106可以包括移动设备、平板计算机、膝上型计算机、台式计算机、可穿戴计算机、游戏控制台、媒体播放器、车辆娱乐系统和/或任何其他合适类型的用户设备。
25.基于上述系统,本技术实施例提供了一种数据遍历方法,以下通过多个实施例进行说明。
26.参见图2,提供了一种数据库的数据遍历方法的流程示意图,如图所示,其包括:
27.s201、确定待遍历数据对应的当前游标区间,并基于游标遍历当前游标区间中的数据,确定被遍历的数据总量。
28.本实施例提供的方案可以用于遍历渐进递增式的数据,渐进递增式的数据是指每天新产生的数据与之前时间产生的数据不重复,即每天产生的都是新数据。由于每天产生的数据量不确定,导致被遍历的数据的数量级是未知的。当然,上述仅为举例说明,针对其他类型的数据库的遍历方案也在本技术的保护范围内。
29.本实施例中,游标区间是指待遍历数据对应的部分数据范围区间,具体可以为使用游标进行数据遍历时游标滑动的区间,游标区间可以例如第n天产生的数据到第n+2天产生的数据,具体地,为了避免数据被重复遍历,游标区间可以为左开右闭或者左闭右开。
30.游标(cursor)提供了在游标区间中一次一行或者多行前进或向后浏览数据的能力,基于游标遍历当前游标区间中的数据可以减少遍历过程中的i/o次数,保证数据库的查询性能受影响较小。具体根据游标进行数据遍历的方法可参考相关技术,在此不再赘述。
31.可选地,本实施例中,步骤s201具体可以包括:按照预设分页大小将当前游标区间进行分页操作,得到若干个数据分页;基于递增游标依次遍历若干个数据分页,直至被遍历的数据分页大小小于所述预设分页大小结束遍历;根据遍历结果确定被遍历的数据总量。
32.本实施例提供的方案,基于游标遍历各个数据分页,直至当前被遍历的数据分页大小小于预设的数据分页大小,即说明当前被遍历的数据分页为当前游标区间中的最后一个数据分页,此时可以结束遍历过程,确定被遍历的数据总量,与传统采用的分页遍历方式
相比,传统的分页遍历方式需要针对每个被遍历的数据分页需要进行深度翻页,翻页深度越深随机i/o次数越多,而本技术实施例提供的方案,基于游标进行遍历,无需进行深度翻页,极大地减少了随机i/o次数,保证了数据查询效率。
33.示例地,本实施例中,参见图3,示出了一种遍历方法的流程视图,针对每个当前游标区间,可以均执行图3所示的流程图进行遍历。
34.如图3所示,步骤s201具体可以包括:
35.s2011、初始化预设分页大小pagesize、游标起始值cursor以及重复键值冗余列表duplicatedlist。
36.其中,预设分页大小用于确定若干个数据分页,游标起始值可以为当前游标区间的起始存储位置。重复键值冗余列表用于存储重复的键值以避免重复遍历。
37.s2012、根据遍历条件,从游标起始值开始遍历,直至遍历过预设分页大小pagesize对应的数据。
38.s2013、在遍历过程中,跳过重复键值冗余列表中存储的键值不进行遍历。
39.具体地,可以将重复键值冗余列表中的键值作为遍历条件,从而排除冗余数据。
40.s2014、根据遍历结果计算下一游标起始值。
41.之后可以再次执行步骤s2012,直至被遍历的数据量小于预设分页大小对应的数据量。
42.具体地,可以将被遍历的最后一条数据对应的键值确定为下一游标起始值,并在后续遍历过程中,将游标起始值记载至重复键值冗余列表中,以避免重复遍历。
43.当被遍历的数据量小于预设分页大小对应的数据量,说明本次被遍历的数据不足以被分为一个单独的数据分页,后续也不存在其他数据,即遍历完成。
44.s202、根据所述数据总量以及预先确定的区间单位,计算当前游标区间在所述区间单位内的平均数据量。
45.本技术实施例中,所述区间单位为衡量所述待遍历数据的数据范围单位。区间单位具体可以为单位时间,也可以以数据源等为区间单位,本实施例对此不进行限定。
46.示例地,以区间单位为单位时间为例,当前游标区间可以为第n天产生的数据到第n+2天产生的数据,则其在区间单位内的平均数据量可以为单位时间“天”对应的平均数据量。另外,具体还可以例如当前游标区间中每小时的平均数据量。
47.可选地,本实施例中,所述区间单位为单位时间,则步骤s202可以包括:计算所述数据总量与当前游标区间的时间范围的比值,确定在单位时间内平均数据量。
48.s203、根据所述区间单位对应的平均数据量,确定下一游标区间对应的区间单位的数量,以确定下一个游标区间。
49.可选地,本实施例中,步骤s203可以包括:根据所述区间单位对应的平均数据量,以及预先设置的遍历数量级阈值按照预设计算方案进行计算,确定下一游标区间对应的区间单位的数量,以确定下一个游标区间,所述预设计算方案包括以下至少之一:将所述平均数据量以及所述遍历数量级阈值进行比例计算;将所述平均数据量对所述区间单位进行积分运算,并乘以所述遍历数量级阈值;将所述平均数据量对所述区间单位进行微分运算,并乘以所述遍历数量级阈值。
50.具体地,将所述平均数据量以及所述遍历数量级阈值进行比例计算的计算公式
为:
51.m
i+1
=p1*ls/c
avg i
52.其中,i标识当前游标区间,i+1标识下一游标区间,c
avg i
为当前游标区间对应的所述区间单位对应的平均数据量,m
i+1
为下一游标区间对应的区间单位的数量,p1为比例控制系数,ls为预先设置的遍历数量级阈值。
53.上述控制方案具体可以称为比例控制,即确定出的取件单位的数量与平均数据量成反比。但是,通过上述比例控制的方案具体进行控制时,可能出现游标区间的数据量波动较大的情况,导致游标区间的划分不均匀。例如,可能出现第一次划分出的游标区间为【0,100】,但是根据第一次划分出的游标区间再次确定出的下一游标区间可能变为【100,10000】,即出现划分不均匀的情况。
54.为此,本实施例中,还可以采用积分运算,具体地,将所述平均数据量对所述区间单位进行积分运算,并乘以所述遍历数量级阈值的计算公式为:
55.m
i+1
=p2*∫(ls/c
avg i
)dx
56.其中,i标识当前游标区间,i+1标识下一游标区间,c
avg i
为当前游标区间对应的所述区间单位对应的平均数据量,m
i+1
为下一游标区间对应的区间单位的数量,p2为积分控制系数,ls为预先设置的遍历数量级阈值,x指示区间单位。
57.根据上述公式可知,积分项ls/c
avg i
也与平均数据量c
avg i
成反比,通过积分控制可以保证不会出现划分不均匀的情况。但是,可能出现由于平均数据量较小导致积分项过大的情况,进而导致被划分出的游标区间的数据量较大的情况。
58.为此,本实施例中,还可以采用微分运算,所述将所述平均数据量对所述区间单位进行微分运算,并乘以所述遍历数量级阈值的计算公式为:
[0059][0060]
其中,i标识当前游标区间,i+1标识下一游标区间,c
avg i
为当前游标区间对应的所述区间单位对应的平均数据量,m
i+1
为下一游标区间对应的区间单位的数量,p3为微分控制系数,ls为预先设置的遍历数量级阈值,x指示区间单位。
[0061]
通过增加微分控制,可以降低游标区间在区间单位上的变化率,对数据变化量施加阻力,保证数据变化量维持在设定的稳定数据量级内。
[0062]
另外需要说明的是,上述三种调节方案可以同时使用,即下一游标区间对应的区间单位的数量的计算公式可以为:
[0063][0064]
具体参数详见箱数内容,在此不再赘述。
[0065]
需要说明的是,上述公式中的p1、p2、p3的值可以根据大型流水表单数据的数据量变化进行调整测试得到,ls的值可以由相关工作人员根据数据库的遍历效率确定。
[0066]
由于一般情况下,数据库接收的数据不会出现数据量突变的情况,因此,本实施例提供的方案,利用当前游标区间在区间单位内的平均数据量,确定下一游标区间对应的区间单位数量,即通过反馈控制逻辑,基于当前游标区间对应的取件单位的平均数据量作为参考,来尽量保证下一游标区间的数据量处于一定范围内,使得数据遍历过程需要遍历的
数据量处于一定范围内,与现有的数据遍历方法相比,本实施例提供的方案无需建立新的索引、遍历过程不依赖均匀分布的主键,通用性较好,且可以减少遍历过程中的i/o次数,保证了数据库的查询性能。另外,本技术实施例中,通过设置上述调整计算公式,可以通过多次调整使得游标区间的数据量从较高的震荡变化趋向平稳,提高了遍历效率。
[0067]
参见图4,示出了一种数据筛选方法的流程示意图,如图所示,其包括:
[0068]
s401、获得第一筛选条件和第二筛选条件,其中,所述第一筛选条件为用于通过数据库索引进行筛选的条件,所述第二筛选条件为不能通过所述数据库索引进行筛选的条件;
[0069]
本实施例中,第一筛选条件可以为创建表单时默认支持的筛选条件,第二筛选条件为表单使用过程中新增的筛选条件。
[0070]
s402、基于所述数据库索引进行所述第一筛选条件对应的查询操作,得到待遍历数据;
[0071]
s403、获得所述待遍历数据对应的当前游标区间,并将所述第二筛选条件作为查询条件,基于游标遍历当前游标区间中的数据,得到与所述第二筛选条件匹配的数据,以及确定被遍历的数据总量;
[0072]
s404、根据所述数据总量以及预先确定的区间单位,计算当前游标区间在所述区间单位内的平均数据量,其中,所述区间单位为衡量所述待遍历数据的数据范围单位;
[0073]
s405、根据所述区间单位对应的平均数据量,确定下一游标区间对应的区间单位的数量,以确定下一个游标区间,并继续执行所述将所述第二筛选条件作为查询条件,基于游标遍历当前游标区间中的数据,得到与所述第二筛选条件匹配的数据,以及确定被遍历的数据总量的步骤。
[0074]
示例地,第一筛选条件具体可以为能够通过表单类型进行过滤导出数据的筛选项,能够通过创建表单时采用的索引进行筛选。若用户新增的按照表单类型和表单创建人组合筛选,第二筛选条件可以表单创建人,如果某种类型的表单数据量巨大,在不变更索引的情况下,增加表单创建人筛选字段后,就会导致数据库需要进行外部排序遍历操作,导致数据库查询性能大幅下降。通过添加新索引来满足用户不断变化的筛选需求,数据库变更周期长,线上风险高,并导致数据库的索引占用容量越来越大,成本较高且用户体验较差。
[0075]
本实施例提供的方案,先通过第一筛选条件对应的查询操作进行一次查询,再通过步骤s403-s405对查询确定的待遍历数据进行遍历,无需增加索引,通用性较高,也不会导致数据库的随机i/o次数增多,保证了数据库的查询效率。
[0076]
参见图5,本技术实施例提供一种数据库的结构示意图,如图所示,其包括:
[0077]
数据区间遍历模块501,用于确定待遍历数据对应的当前游标区间,并基于游标遍历当前游标区间中的数据,确定被遍历的数据总量;
[0078]
数据区间稳定划分模块502,用于根据所述数据总量以及预先确定的区间单位,计算当前游标区间在所述区间单位内的平均数据量,其中,所述区间单位为衡量所述待遍历数据的数据范围单位,以根据所述区间单位对应的平均数据量,确定下一游标区间对应的区间单位的数量,以确定下一个游标区间。
[0079]
可选地,参见图5,当采用上述实施例中的比例控制、积分控制、微分控制时,数据区间稳定划分模块502可以包括比例控制模块、积分控制模块、微分控制模块,分别用于进
行对应的计算,图中的负反馈指示计算依据的是平均数据量的倒数。
[0080]
需要说明的是,参见图5,具体进行遍历时,第一个游标区间可以根据预先设置在初始化过程中确定,第一个游标区间之后的其他游标区间通过数据区间稳定划分模块502确定。
[0081]
参照图6,示出了根据本技术实施例五的一种电子设备的结构示意图,本技术具体实施例并不对电子设备的具体实现做限定。
[0082]
如图6所示,该电子设备可以包括:处理器(processor)602、通信接口(communications interface)604、存储器(memory)606、以及通信总线608。
[0083]
其中:
[0084]
处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。
[0085]
通信接口604,用于与其它电子设备或服务器进行通信。
[0086]
处理器602,用于执行程序610,具体可以执行上述数据遍历方法实施例中的相关步骤。
[0087]
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
[0088]
处理器602可能是cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
[0089]
存储器606,用于存放程序610。存储器606可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0090]
程序610具体可以用于使得处理器602执行前述多个方法实施例中任一实施例所描述的方法对应的操作。
[0091]
程序610中各步骤的具体实现可以参见上述方法实施例中的相应步骤和单元中对应的描述,并具有相应的有益效果,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0092]
本技术实施例还提供了一种计算机存储介质,一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述多个方法实施例中的任一方法。
[0093]
本技术实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中的任一方法对应的操作。
[0094]
需要指出,根据实施的需要,可将本技术实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本技术实施例的目的。
[0095]
上述根据本技术实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cd rom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic或fpga)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,
ram、rom、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
[0096]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。
[0097]
以上实施方式仅用于说明本技术实施例,而并非对本技术实施例的限制,有关技术领域的普通技术人员,在不脱离本技术实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本技术实施例的范畴,本技术实施例的专利保护范围应由权利要求限定。

技术特征:
1.一种数据库的数据遍历方法,包括:确定待遍历数据对应的当前游标区间,并基于游标遍历当前游标区间中的数据,确定被遍历的数据总量;根据所述数据总量以及预先确定的区间单位,计算当前游标区间在所述区间单位内的平均数据量,其中,所述区间单位为衡量所述待遍历数据的数据范围单位;根据所述区间单位对应的平均数据量,确定下一游标区间对应的区间单位的数量,以确定下一个游标区间。2.根据权利要求1所述的方法,其中,所述根据所述区间单位对应的平均数据量,确定下一游标区间对应的区间单位的数量,以确定下一个游标区间,包括:根据所述区间单位对应的平均数据量,以及预先设置的遍历数量级阈值按照预设计算方案进行计算,确定下一游标区间对应的区间单位的数量,以确定下一个游标区间,所述预设计算方案包括以下至少之一:将所述平均数据量以及所述遍历数量级阈值进行比例计算;将所述平均数据量对所述区间单位进行积分运算,并乘以所述遍历数量级阈值;将所述平均数据量对所述区间单位进行微分运算,并乘以所述遍历数量级阈值。3.根据权利要求2所述的方法,其中,所述将所述平均数据量以及所述遍历数量级阈值进行比例计算的计算公式为:m
i+1
=p1*ls/c
avgi
其中,i标识当前游标区间,i+1标识下一游标区间,c
avgi
为当前游标区间对应的所述区间单位对应的平均数据量,m
i+1
为下一游标区间对应的区间单位的数量,p1为比例控制系数,ls为预先设置的遍历数量级阈值。4.根据权利要求2所述的方法,其中,所述将所述平均数据量对所述区间单位进行积分运算,并乘以所述遍历数量级阈值的计算公式为:m
i+1
=p2*∫(ls/c
avgi
)dx其中,i标识当前游标区间,i+1标识下一游标区间,c
avgi
为当前游标区间对应的所述区间单位对应的平均数据量,m
i+1
为下一游标区间对应的区间单位的数量,p2为积分控制系数,ls为预先设置的遍历数量级阈值,x指示区间单位。5.根据权利要求2所述的方法,其中,所述将所述平均数据量对所述区间单位进行微分运算,并乘以所述遍历数量级阈值的计算公式为:其中,i标识当前游标区间,i+1标识下一游标区间,c
avgi
为当前游标区间对应的所述区间单位对应的平均数据量,m
i+1
为下一游标区间对应的区间单位的数量,p3为微分控制系数,ls为预先设置的遍历数量级阈值,x指示区间单位。6.根据权利要求1所述的方法,其中,所述确定待遍历数据对应的当前游标区间,并基于游标遍历当前游标区间中的数据,确定被遍历的数据总量,包括:按照预设分页大小将当前游标区间进行分页操作,得到若干个数据分页;基于递增游标依次遍历若干个数据分页,直至被遍历的数据分页大小小于所述预设分页大小结束遍历;
根据遍历结果确定被遍历的数据总量。7.一种数据筛选方法,包括:获得第一筛选条件和第二筛选条件,其中,所述第一筛选条件为用于通过数据库索引进行筛选的条件,所述第二筛选条件为不能通过所述数据库索引进行筛选的条件;基于所述数据库索引进行所述第一筛选条件对应的查询操作,得到待遍历数据;获得所述待遍历数据对应的当前游标区间,并将所述第二筛选条件作为查询条件,基于游标遍历当前游标区间中的数据,得到与所述第二筛选条件匹配的数据,以及确定被遍历的数据总量;根据所述数据总量以及预先确定的区间单位,计算当前游标区间在所述区间单位内的平均数据量,其中,所述区间单位为衡量所述待遍历数据的数据范围单位;根据所述区间单位对应的平均数据量,确定下一游标区间对应的区间单位的数量,以确定下一个游标区间,并继续执行所述将所述第二筛选条件作为查询条件,基于游标遍历当前游标区间中的数据,得到与所述第二筛选条件匹配的数据,以及确定被遍历的数据总量的步骤。8.一种数据库,包括:数据区间遍历模块,用于确定待遍历数据对应的当前游标区间,并基于游标遍历当前游标区间中的数据,确定被遍历的数据总量;数据区间稳定划分模块,用于根据所述数据总量以及预先确定的区间单位,计算当前游标区间在所述区间单位内的平均数据量,其中,所述区间单位为衡量所述待遍历数据的数据范围单位,以根据所述区间单位对应的平均数据量,确定下一游标区间对应的区间单位的数量,以确定下一个游标区间。9.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的方法对应的操作。10.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。

技术总结
本申请实施例提供了一种数据遍历方法、数据库、电子设备及计算机存储介质,数据遍历方法,包括:确定待遍历数据对应的当前游标区间,并基于游标遍历当前游标区间中的数据,确定被遍历的数据总量;根据所述数据总量以及预先确定的区间单位,计算当前游标区间在所述区间单位内的平均数据量,其中,所述区间单位为衡量所述待遍历数据的数据范围单位;根据所述区间单位对应的平均数据量,确定下一游标区间对应的区间单位的数量,以确定下一个游标区间。以确定下一个游标区间。以确定下一个游标区间。


技术研发人员:查志超 王焱 吴少腾
受保护的技术使用者:钉钉(中国)信息技术有限公司
技术研发日:2022.10.25
技术公布日:2023/1/6

最新回复(0)