System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
技术介绍
1、目前主流的索引组表,通过select for update语句对数据的加排他锁时,需要先对数据加行锁,后读取数据,然后对不匹配的数据释放行锁。这个流程中会出现等待不匹配数据的行锁,甚至在同一个表存在并发加锁读的情况下,可能产生不必要的死锁。可以通过合理放弃非目标行的锁等待,以此有效避免不必要的锁冲突。
2、因而,亟需研发一种数据处理方法、装置、电子设备及存储介质解决上述存在的一个或多个问题。
技术实现思路
1、鉴于此,为解决上述技术问题或部分技术问题,本专利技术实施例提供一种数据处理方法、装置、电子设备及存储介质。
2、第一方面,本申请提供了一种数据处理方法,所述方法包括:
3、响应于待执行的目标语句,从数据库中获取与所述目标语句对应的数据行,并将所述数据行添加至第一数据行列表;
4、利用加锁引擎依次对所述第一数据行列表中的数据行进行加锁处理;
5、获取加锁处理后数据行的记录信息,所述记录信息包括所述数据行的更新信息以及所述数据行的数据信息;
6、根据所述数据行的数据信息,判断加锁处理后的数据行是否满足优化判断条件;
7、在所述数据行满足优化判断条件的情况下,根据所述数据行的更新信息对加锁处理后的数据行进行筛选处理,得到目标数据行,并对所述目标数据行执行目标语句。
8、在一个可能的实施方式中,所述
9、在所述数据行不满足优化器判断条件的情况下,利用所述加锁引擎释放加锁处理后的数据行,并利用加锁引擎对所述第一数据行列表中与所述数据行相邻的下一行数据行进行加锁处理。
10、在一个可能的实施方式中,所述获取加锁处理后数据行的记录信息,包括:
11、获取所述数据行的加锁处理结果,并将所述加锁处理结果添加至所述数据行的更新信息;
12、在所述数据行的加锁处理结果为加锁成功的情况下,获取所述数据行的数据信息;
13、在所述数据行的加锁处理结果为加锁失败的情况下,获取所述数据行的历史可见记录信息,并根据所述历史可见记录信息获取所述数据行的数据信息。
14、在一个可能的实施方式中,所述获取加锁处理后数据行的记录信息,还包括:
15、在所述数据行对应的数据表的索引为二级索引的情况下,获取所述数据行对应的二级索引的加锁处理结果,并将所述加锁处理结果添加至所述数据行的更新信息;
16、在所述二级索引的加锁处理结果加锁成功的情况下,利用加锁引擎对所述数据行对应的主键索引进行加锁处理,获取加锁处理后所述数据行对应的主键索引的记录信息,根据所述记录信息得到所述数据行的数据信息;
17、在所述二级索引的加锁处理结果加锁失败情况下,获取所述数据行的历史可见记录信息,并根据所述历史可见记录信息获取所述数据行的数据信息。
18、在一个可能的实施方式中,所述利用加锁引擎对所述数据行对应的主键索引进行加锁处理之前,所述方法还包括:
19、通过所述数据行对应的二级索引获取所述数据行对应的主键索引。
20、在一个可能的实施方式中,所述获取加锁处理后所述数据行对应的主键索引的记录信息,包括:
21、获取所述数据行对应的主键索引的加锁处理结果,将所述加锁处理结果添加至所述主键索引的更新信息;
22、在所述数据行对应的主键索引为加锁处理结果为加锁成功的情况下,获取所述数据行的数据信息;
23、在所述数据行对应的主键索引为加锁处理结果为加锁失败的情况下,获取所述数据行的历史可见记录信息,并根据所述历史可见记录信息获取所述数据行的数据信息。
24、在一个可能的实施方式中,所述根据所述数据行的更新信息对加锁处理后的数据行进行筛选处理,得到目标数据行,包括:
25、根据所述数据行的更新信息得到所述数据行的加锁处理结果;
26、判断所述数据行的加锁处理结果是否为加锁成功,若是,将所述数据行作为目标数据行,否则,利用加锁引擎重新对所述数据行进行加锁处理。
27、第二方面,本申请提供了一种数据处理装置,所述装置包括:
28、第一获取模块:用于响应于待执行的目标语句,从数据库中获取与所述目标语句对应的数据行,并将所述数据行添加至第一数据行列表;
29、加锁模块:用于利用加锁引擎依次对所述第一数据行列表中的数据行进行加锁处理;
30、第二获取模块:用于获取加锁处理后数据行的记录信息,所述记录信息包括所述数据行的更新信息以及所述数据行的数据信息;
31、判断模块:用于根据所述数据行的数据信息,判断加锁处理后的数据行是否满足优化判断条件;
32、筛选模块:用于在所述数据行满足优化判断条件的情况下,根据所述数据行的更新信息对加锁处理后的数据行进行筛选处理,得到目标数据行,并对所述目标数据行执行目标语句。
33、第三方面,本申请提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面任一项实施例所述的数据处理方法的步骤。
34、第四方面,本申请提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一项实施例所述的数据处理方法的步骤。
35、本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的数据处理方法改善分布式数据库一致性控制导致的减小和并发dml下的锁冲突,以达到保持分布式强一致性的同时,单数据节点不再因非目标行产生锁冲突的效果,避免了不必要的锁等待和锁冲突,提高了分布式数据库并发dml的执行效率,节省了额外的运维代价。
本文档来自技高网...【技术保护点】
1.一种数据处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,还包括:
3.根据权利要求1所述的方法,其特征在于,所述获取加锁处理后数据行的记录信息,包括:
4.根据权利要求3所述的方法,其特征在于,所述获取加锁处理后数据行的记录信息,还包括:
5.根据权利要求4所述的方法,其特征在于,所述利用加锁引擎对所述数据行对应的主键索引进行加锁处理之前,所述方法还包括:
6.根据权利要求4所述的方法,其特征在于,所述获取加锁处理后所述数据行对应的主键索引的记录信息,包括:
7.根据权利要求1所述的方法,其特征在于,所述根据所述数据行的更新信息对加锁处理后的数据行进行筛选处理,得到目标数据行,包括:
8.一种数据处理装置,其特征在于,包括:
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1~7中任一项所述的数据处理方法的步骤。
10.一种存储介质,其上存储有计算机程序,其
...【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,还包括:
3.根据权利要求1所述的方法,其特征在于,所述获取加锁处理后数据行的记录信息,包括:
4.根据权利要求3所述的方法,其特征在于,所述获取加锁处理后数据行的记录信息,还包括:
5.根据权利要求4所述的方法,其特征在于,所述利用加锁引擎对所述数据行对应的主键索引进行加锁处理之前,所述方法还包括:
6.根据权利要求4所述的方法,其特征在于,所述获取加锁处理后所述数据行对应的主键索引的记录信息...
【专利技术属性】
技术研发人员:魏琪鹭,岳新新,
申请(专利权)人:金篆信科有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。