我有两张table要复印 post_id
从一张table到另一张table testpostmeta.meta_value = testTable.stockcode
房间里大约有2000排 testTable
6.5万行 testpostmeta
.
代码正常,只需1-2分钟即可完成。有什么办法可以加快仓鼠轮的速度吗?
UPDATE testTable
INNER JOIN testpostmeta
ON testTable.stockcode = testpostmeta.meta_value
SET testTable.post_id = testpostmeta.post_id
我试着添加 WHERE testpostmeta.meta_value = testTable.stockcode
但那没用。
4条答案
按热度按时间xtupzzrd1#
如果
post_id
在目标表中建立索引,也会减慢更新速度。尝试在操作之前禁用索引,然后再启用它。因此,您的数据将被索引一次,而不是每次后续的数据更改。
正如参考文献中所说:
如果锁定表,则同时执行多个更新要比一次执行一个更新快得多。
这里有一些参考页,可以提供更多关于可以做什么的想法:
8.2.4.2优化更新语句
8.5.4 innodb表的批量数据加载
uyhoqukh2#
确保testtable和testpostemta上有适当的索引
kq0g1dla3#
你可以停止自动提交
jaql4c8m4#
尝试为每个表添加一个索引,该索引与用于
JOIN
标准: