TIDB create table...select is not implemented yet

create table select 语法是不支持的,不过可以参考上面这位大佬的方式绕过。

这个语法之所以不支持,有一方面的考虑是分布式大事务处理的效率问题,而且除了比较小的表外,稍微大一点的表很容易出现超过事务限制的问题。

上面这个 insert into select 的方式也会有相同的问题,这个时候怎么处理呢?比较好的方式是放弃大事务的原子性和一致性,通过一些手段切分大事务变为多个小事务实现插入,这些方法之一就是用集群的非事务特性功能来实现、或者另外写脚本完成。

如果需要强烈保证事务特性,可以通过其他工具完成,比如使用dumpling+lightning导出导入、使用spark整表导出导入。

1 个赞