1 .一种数据库数据迁移方法,其特征在于,包括:
确定源数据库中每张表的第一数据量;
确定线程单次读取的第二数据量;所述第二数据量与计算机资源相关;
基于所述第二数据量以及所述每张表的第一数据量,确定所述每张表的数据迁移完所
需的线程数;
控制启动指定数量的线程,基于所述每张表对应的线程数调度所述指定数量的线程以
读取所述每张表中的数据并写入目标数据库。
2.根据权利要求1所述的数据库数据迁移方法,其特征在于,所述源数据库包括数据库
统计信息,所述数据库统计信息包含每张表的数据量;所述确定源数据库中每张表的第一
数据量,包括:
获取所述源数据库中的所述数据库统计信息;
基于所述数据库统计信息确定所述源数据库中每张表的第一数据量。
3 .根据权利要求1所述的数据库数据迁移方法,其特征在于,所述计算机资源包括CPU
资源、I/O资源和内存资源中的至少一个;和/或,所述指定数量与CPU核数相关,且该指定数
量小于等于CPU核数的两倍值;所述确定线程单次读取的第二数据量,包括:
基于所述CPU资源、I/O资源和内存资源中的至少一个确定线程单次读取的第二数据
量。
4 .根据权利要求1所述的数据库数据迁移方法,其特征在于,所述基于所述第二数据量
以及所述每张表的第一数据量,确定所述每张表的数据迁移完所需的线程数,包括:
确定所述第二数据量是否大于所述每张表的第一数据量;
确定所述第二数据量大于所述每张表的第一数据量时,所述每张表对应的线程数是第
一数值;
确定所述第二数据量不大于所述每张表的第一数据量时,所述每张表对应的线程数是
第二数值;所述第二数值大于第一数值。
5 .根据权利要求4所述的数据库数据迁移方法,其特征在于,所述每张表对应的线程数
是第二数值由以下方式确定:
取余运算所述每张表的第一数据量与所述第二数据量;
确定取余运算的结果是零时,所述每张表对应的线程数是所述每张表的第一数据量与
所述第二数据量取模运算的结果;
确定取余运算的结果不是零时,所述每张表对应的线程数是所述每张表的第一数据量
与所述第二数据量取模运算的结果再加一。
6 .根据权利要求1所述的数据库数据迁移方法,其特征在于,还包括:
基于所述每张表对应的线程数对每张表中的数据进行分片得到分片数据;其中所述分
片数据的片数与该线程数相同;
为各所述分片数据建立查询关键字,基于各所述分片数据的查询关键字构建各所述分
片数据的查询SQL并放入队列中;
所述基于所述每张表对应的线程数调度所述指定数量的线程以读取所述每张表中的
数据并写入目标数据库,包括:
基于所述每张表对应的线程数,从所述指定数量的线程中调度与该线程数对应的线程
权 利 要 求 书
1/2 页
2
评论