为什么" INSERT INTO SELECT"比插入更慢?

时间:2017-01-02 22:12:18

标签: php mysql innodb

我在table1中有100,000行,我想创建具有相同数据的table2(它们都具有相同的结构)所以我做了

INSERT INTO table2 SELECT * FROM table1,花了大约15秒钟。

如果在php中我做

while (SELECT * FROM table1){

    INSERT INTO table2...

}

这需要10秒钟。为什么插入select会变慢?

1 个答案:

答案 0 :(得分:0)

如果您执行的查询包含" SELECT * FROM table1"然后迭代结果,您将只执行一个与从table1中选择数据相关的查询。

但是,如果你做了一个" SELECT * FROM table1"在插入内部,我认为它将插入并选择每一行,导致100 000个选择以及100 000个插入,而不是1个选择和100 000个插入。

不是100%肯定,如果我错了,请有人纠正我,我会删除这个答案。