【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
背景:普通表改为分区表
新建分区表,现需要将普通表中的数据导入到分区表中,如何快速的导入?
1.insert select 2.dumpling备份恢复
我用的是insert 。。select
是觉得这方法速度比较慢吗?
物理导出导入更快,如果是高版本还有import into (相比lightning更简单些)
insert select慢多了
可以试试batch insert,这种方式会快一些
1 个赞
比如batch就可以快速迁移,但是你发帖的时候没有写出你的集群版本,不知道你使用的版本有没有batch功能,无法提供有效的帮助啊
1 个赞
另外看了下仓库,貌似之后的版本支持 import into from select ,大大简化了数据迁移的复杂性 ![]()
https://github.com/pingcap/tidb/issues/49883
insert into select * from t;
前面说的那两种也不会很复杂的 ![]()
我的是5.4
那就只能借助用dumpling导出,lightning导入了。顺便一提,正常使用的话,大表也没必要分区,除非经常周期性删除大量数据。
1 个赞
CTAS很符合你说的这个场景。 试试吧。
备份恢复
还是用insert。。。select吧,大表导出,在导入,不好控制,insert …select 可以根据时间范围字段进行分批操作
最快的方案是dumpling导出,lightning并行导入
嗯嗯,数据量大,担心对线上有影响
MySQL [test]> create table t2 like t1;
Query OK, 0 rows affected (0.11 sec)
MySQL [test]> insert into t2 select * from t1;
Query OK, 524288 rows affected (17.61 sec)
Records: 524288 Duplicates: 0 Warnings: 0
速度一般,测试环境
是,这个应该是最慢的了