2017-06-09 43 views
0

我试图用一个表的内容复制到另一台:如何加速MySQL从select中插入?

INSERT INTO table1 
SELECT * FROM table2 
WHERE ... 

有700万行。所以查询可能会运行几个小时。有什么办法可以加快这个过程吗?

+2

为列中的列添加索引 –

+0

table1是空的? – georgeos

+0

@georgeos否,表1已经有一些行 –

回答

-2

拆分操作正常,

检索第一个和下插入,这将平衡读取和在锁定了时间写操作和数据库锁定。

您的总执行时间将比现在的执行时间快得多。

希望你和你的存储过程或函数

在做这个始终检索记录集先做临时存储和插入。当使用存储过程时,它会消耗数据库内存,当您执行插入操作时选择与单个线程中的并行处理相同的操作,这会使数据库操作变慢并导致模糊不清

+0

请详细解释。 –

+0

请参阅我的编辑 –