0

我需要将一个大的(8000 万条记录)MySQL 表复制到另一个表中,因为我需要向表中添加索引并且使用 ALTER 会太慢/内存不足。

我尝试在屏幕实例中运行包含 INSERT INTO table2 SELECT * FROM table1 的 MySQL 脚本,以便我可以分离并退出 SSH 会话,但由于某种原因,它完成了前 2000 万行(花了几个小时)然后它随机停止。这种方法需要大量内存吗?我还能如何在后台快速执行此操作?

4

1 回答 1

1

将表转储到 .csv 文件中

mysqldump -u [username] -p -t -T/path/to/directory/file.txt [database] [table]  --fields-terminated-by=,

使用正确的架构创建一个新表

然后加载包含 .csv 数据的新表

LOAD DATA INFILE '/path/to/directory/file.txt' INTO TABLE database.new_table FIELDS TERMINATED BY ','

仅供参考:这些命令未经测试,可能需要一些调整,但你应该明白

于 2013-02-08T23:48:50.360 回答