【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
基于主键 / 唯一键的范围分批插入