【发布时间】:2013-11-24 14:11:48
【问题描述】:
我正在尝试将一些数据从一个数据库移动到另一个数据库。我目前在我的数据库中有超过一百万个条目,我预计这需要很长时间,但已经过了 50 分钟并且没有结果:)。 这是我的查询:
UPDATE xxx.product AS p
LEFT JOIN xx.tof_art_lookup AS l ON p.model_view = l.ARL_SEARCH_NUMBER
SET p.model = l.ARL_DISPLAY_NR
WHERE p.model_view = l.ARL_SEARCH_NUMBER;
欢迎任何有关如何改进此查询的帮助。提前致谢!
【问题讨论】:
-
在更新中使用 Join 非常消耗!
-
更新时的外连接非常罕见(除了 IS NULLS)。你确定那是你想要的吗?如果没有,请切换到 INNER JOIN。
-
您是否建议使用 php 获取数据并将其保存到数组中,然后执行更新?
-
50 分钟?如果您有一百万行,则每秒更新 300 次。挂在那里。这样的工作可能需要一夜之间。此外,您需要让我们知道您是否使用 InnoDB。
-
不要将数据带到 PHP 中。
标签: mysql sql performance