方式一:先导出、再导入(关闭唯一验证、关闭自动提交、使用LOAD DATA INFILE)
SELECT * INTO OUTFILE 'D:\\d_paid.txt' FROM d_paid
LOAD DATA INFILE 'D:\\d_paid.txt' INTO TABLE d_paid2
导出花费时间:
导入花费时间:
一千万条数据只花了两分多钟,这里忘记截图了(关闭了自动提交、关闭了唯一性检查、load比传统的insert效率高很多)。
方式二:蠕虫复制(关闭唯一验证、关闭自动提交、复制自身数据)
蠕虫复制500万条数据只要1分多钟的优化方式(InnoDB存储引擎)。
-- 关闭自动提交
SET AUTOCOMMIT=0
-- 关闭唯一性检查
SET UNIQUE_CHECKS=0
导完数据记得改回去。
测试结果:
数据库从500万条数据瞬间到达1000万条数据了。
再记录一下表结构复制的语句:
CREATE TABLE d_paid2 LIKE d_paid