2012-07-23 41 views
1

我有以下查詢,我需要運行更新約25M行的表。如何優化25M行上的批量sql更新

UPDATE cast_info SET movie_url = 
    (SELECT imdb_id FROM title WHERE title.id = cast_info.movie_id) 

是否有我需要運行此查詢之前在MySQL中改變任何事情或變量,所以不是說花10個小時,只需要八?

+0

什麼25M的行%有** ** imdb_id是從以前的值不同?我問這是因爲UPDATE邏輯優化了不變更新。在這種情況下,根據@ MMadhivanan的建議執行內部連接將佔據主導地位,這裏的索引將非常關鍵。 – TerryE 2012-07-24 00:46:23

回答

3

試試這個

UPDATE cast_info as ci inner join title as ti on ti.id = ci.movie_id 
SET ci.movie_url =t.imdb_id