MySQL INSERT INTO SELECT非常慢

时间:2012-02-20 19:05:04

标签: mysql select insert

我刚刚创建了一个空表document_test,它是document表的副本。然后,我将新的列主机添加到document_test,并复制document中的所有其他内容。声明如下:

INSERT INTO document_test (id,col1,col2,col3,col4) SELECT * from document;

document表包含大约550万行,我已在document_test中禁用了密钥,将foreign_key_checks设置为0,将unique_checks设置为0. {{1} }命令已在Linux服务器上运行两天,但尚未完成。 INSERT显示状态为“发送数据”。 SHOW PROCESSLIST命令返回0.但是,我确实从SELECT count(*) FROM document_test;命令中看到SHOW TABLE STATUS中的行数不为零。有趣的是,据推测,行数应该单调增加,但事实并非如此。连续四次查询的结果是3299583,3327575,3299730和3341818!

这让我感到困惑。有人可以帮助我: (1)是否插入数据? (2)如何及时完成此插入? (2)有没有办法检查这个document_test命令的状态? (“发送数据”之后的下一步)

不幸的是,在运行此命令之前,我没有打开慢查询日志和分析。

1 个答案:

答案 0 :(得分:2)

也许尝试使用mysqldump导出数据,然后通过LOAD DATA导入数据?这应该更快。