同一实例迁移大表有什么方法吗

【TiDB 使用环境】生产环境 /测试/ Poc
【TiDB 版本】all
如题,几亿行的大表,用 insert select * from 会超过内存限制,有什么比较优雅的迁移方式吗

dumpling+lighting

几亿条数据不是很多,可以batch on insert into

1 个赞

可以分批 insert select * from

insert select * from

import into

最快的是dumping备份,然后重命名文件,比如从test.t1改成test.t2等 然后lighning导入

配置个CDC慢慢跑,或者你datax也可以(除了本身的工具外)

不同实例,名称不冲突的话,br表备份+恢复应该是最快的吧

比较困扰的就是同一实例内的数据迁移

cdc 要求不同实例,同名库表,比较困扰我的是同一实例内的数据迁移

感觉分批insert select * from 也可以,但是这样依赖于主键是数字

dumpling导出的文件用csv,自己手工改下名字

推荐采用分批按主键或者时间字段插入。

可以用dumping备份后再导入

有个 import into 语句,可以直接用

楼上已经有人说了最佳的方式,batch on 方式,limit设置200一次,不要create table like,手动create 表上设置一下打散参数。

大表有几个亿,用导出,导入方法

主键不是数字的可以用隐藏字段_tidb_rowid

基于主键 / 唯一键的范围分批插入