System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请属于数据处理,尤其涉及一种数据库的同步方法、装置、电子设备及存储介质。
技术介绍
1、在现有的数据库同步方法中,通常是使用全量同步的方法,即不经过筛选,直接将主数据库的各个数据表同步至从数据库中,当主数据库的数据量较大时,通过全量同步的方法进行数据库同步的效率较低;此外,现有的数据库同步方法在使用多个线程进行同步数据时,各个线程之间的任务量差异较大,这也会导致现有的数据库同步方法的效率较低。
技术实现思路
1、有鉴于此,本申请实施例提供了一种数据库的同步方法、装置、电子设备及存储介质,以解决现有的数据库同步方法的效率较低的技术问题。
2、第一方面,本申请实施例提供一种数据库的同步方法,包括:
3、根据主数据库存储的各个数据表的校验码和从数据库存储的各个数据表的校验码,确定所述主数据库中存在的与所述从数据库同名数据表不同的数据表集合;
4、根据所述数据表集合中包含的各个数据表的占用存储空间值,将所述数据表集合划分为多个数据表组,使得各个所述数据表组的占用存储空间值之间的差值小于第一阈值;
5、利用创建的多个线程,将所述多个数据表组并行同步至所述从数据库;其中,每个所述线程用于执行一个所述数据表组的同步操作。
6、可选的,所述根据所述数据表集合中包含的各个数据表的占用存储空间值,将所述数据表集合划分为多个数据表组,包括:
7、根据所述数据表集合中包含的各个数据表的占用存储空间值,计算得到所述数据表集合的总占用
8、根据所述多个线程的数量,计算得到每个所述线程对应的基准占用存储空间值;
9、分别为每个所述线程分配一个所述数据表集合中的数据表;
10、针对每个所述线程,计算该线程的剩余占用存储空间值,从所述数据表集合中为该线程分配一个占用存储空间值与所述剩余占用存储空间值最接近的数据表,直至所述剩余占用存储空间值的绝对值小于第二阈值;其中,所述剩余占用存储空间值等于所述基准占用存储空间值与该线程已分配的所有数据表的占用存储空间值之差。
11、可选的,所述分别为每个所述线程分配一个所述数据表集合中的数据表,包括:
12、从所述数据表集合中挑选出所述占用存储空间值排名前n的数据表;其中,n等于所述多个线程的数量;
13、将所述占用存储空间值排名前n的数据表分别分配至一个所述线程。
14、可选的,在根据所述多个线程的数量,计算得到每个所述线程对应的基准占用存储空间值之后,还包括:
15、若所述数据表集合中存在占用存储空间值超过所述基准占用存储空间值的第二数据表,则将每个所述第二数据表分别分配至一个所述线程;
16、在不统计所述第二数据表和已分配所述第二数据表的所述线程的情况下,返回执行根据所述数据表集合中包含的各个数据表的占用存储空间值,计算得到所述数据表集合的总占用存储空间值的步骤以及后续步骤。
17、可选的,在针对每个所述线程,计算该线程的剩余占用存储空间值,从所述数据表集合中为该线程分配一个占用存储空间值与所述剩余占用存储空间值最接近的数据表,直至所述剩余占用存储空间值的绝对值小于第二阈值之后,还包括:
18、当所述数据表集合中包含的所有数据表都分配完毕后,记作完成一次所述数据表集合的分组操作;
19、重复执行多次所述分组操作,得到所述数据表集合的多个分组结果;
20、从所述多个分组结果中,确定目标分组结果;
21、根据所述目标分组结果,将所述数据表集合划分为多个数据表组。
22、可选的,所述从所述多个分组结果中,确定目标分组结果,包括:
23、针对每个所述分组结果,确定该分组结果中包含的占用存储空间值最大的目标数据表组;
24、从所述多个分组结果中,选取包含的所述目标数据表组的占用存储空间值最小的分组结果,作为所述目标分组结果。
25、可选的,所述从所述多个分组结果中,确定目标分组结果,包括:
26、针对每个所述分组结果,计算该分组结果中包含的各个数据表组的占用存储空间值之间的方差;
27、从所述多个分组结果中,选取包含的各个数据表组的占用存储空间值之间的方差最小的分组结果,作为所述目标分组结果。
28、第二方面,本申请实施例提供一种数据库的同步装置,包括:
29、第一确定单元,用于根据主数据库存储的各个数据表的校验码和从数据库存储的各个数据表的校验码,确定所述主数据库中存在的与所述从数据库同名数据表不同的数据表集合;
30、第一划分单元,用于根据所述数据表集合中包含的各个数据表的占用存储空间值,将所述数据表集合划分为多个数据表组,使得各个所述数据表组的占用存储空间值之间的差值小于第一阈值;
31、第一同步单元,用于利用创建的多个线程,将所述多个数据表组并行同步至所述从数据库;其中,每个所述线程用于执行一个所述数据表组的同步操作。
32、第三方面,本申请实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面任一项所述数据库的同步方法中的各步骤。
33、第四方面,本申请实施例提供一种计算机可读存储介质所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面任一项所述的数据库的同步方法中的各步骤。
34、第五方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行如上述第一方面任一项所述的数据库的同步方法中的各步骤。
35、本申请实施例提供的数据库的、装置、电子设备及存储介质具有以下有益效果:
36、在本申请提供的数据库的同步方法中,首先根据主数据库存储的各个数据表的校验码和从数据库存储的各个数据表的校验码,确定主数据库中存在的与从数据库同名数据表不同的数据表集合;再根据数据表集合中包含的各个数据表的占用存储空间值,将数据表集合划分为多个数据表组,使得各个数据表组的占用存储空间值之间的差值小于第一阈值;然后利用创建的多个线程,将数据表组并行同步至从数据库;其中,每个线程用于执行一个数据表组的同步操作。本申请的数据库的同步方法只对主数据库中存在的与从数据库不同的数据表集合进行同步,并对数据表集合进行分组,使得各个数据表组的占用存储空间值接近,且通过一个线程执行一个数据表组的同步操作,从而使得各个线程的同步时间接近,提高了数据库的同步效率。
本文档来自技高网...【技术保护点】
1.一种数据库的同步方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据表集合中包含的各个数据表的占用存储空间值,将所述数据表集合划分为多个数据表组,包括:
3.根据权利要求2所述的方法,其特征在于,所述分别为每个所述线程分配一个所述数据表集合中的数据表,包括:
4.根据权利要求2所述的方法,其特征在于,在根据所述多个线程的数量,计算得到每个所述线程对应的基准占用存储空间值之后,还包括:
5.根据权利要求2至4任一项所述的方法,其特征在于,在针对每个所述线程,计算该线程的剩余占用存储空间值,从所述数据表集合中为该线程分配一个占用存储空间值与所述剩余占用存储空间值最接近的数据表,直至所述剩余占用存储空间值的绝对值小于第二阈值之后,还包括:
6.根据权利要求5所述的方法,其特征在于,所述从所述多个分组结果中,确定目标分组结果,包括:
7.根据权利要求5所述的方法,其特征在于,所述从所述多个分组结果中,确定目标分组结果,包括:
8.一种数据库的同步装置,其特征在于,包括:
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述数据库的同步方法中的各步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据库的同步方法中的各步骤。
...【技术特征摘要】
1.一种数据库的同步方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据表集合中包含的各个数据表的占用存储空间值,将所述数据表集合划分为多个数据表组,包括:
3.根据权利要求2所述的方法,其特征在于,所述分别为每个所述线程分配一个所述数据表集合中的数据表,包括:
4.根据权利要求2所述的方法,其特征在于,在根据所述多个线程的数量,计算得到每个所述线程对应的基准占用存储空间值之后,还包括:
5.根据权利要求2至4任一项所述的方法,其特征在于,在针对每个所述线程,计算该线程的剩余占用存储空间值,从所述数据表集合中为该线程分配一个占用存储空间值与所述剩余占用存储空间值最接近的数据表,直至所述剩余占用存储空间值的...
【专利技术属性】
技术研发人员:徐奕信,韩茂林,熊胜辉,贾利伟,黎强,岑银,梁舒幸,申志伟,曾就业,陈真,
申请(专利权)人:长园深瑞继保自动化有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。