我已经将一个字段添加到MySQL表中。我需要用另一个表中的值填充新列。这里是我想运行的查询:在750k行执行MySQL更新查询
UPDATE table1 t1
SET t1.user_id =
(
SELECT t2.user_id
FROM table2 t2
WHERE t2.usr_id = t1.usr_id
)
我在239K行本地运行该查询,大约需要10分钟。在我对现场环境做这件事之前,我想问问我在做什么看起来不错,即10分钟听起来合理。或者我应该以另一种方式做,一个PHP循环?一个更好的查询?
此查询需要一个'LEFT JOIN'来产生相同的结果(即缺少行中的NULL) – Quassnoi 2009-08-17 12:58:10
哇!测试了100行的查询 - 平均650ms。在两个表100行上创建索引键MUL usr_id avg 7ms! – ed209 2009-08-17 15:50:33
@ ed209:这是多么惊人的变化可以有多少影响,呃? – Eric 2009-08-17 15:56:35