我已經將一個字段添加到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