2013-02-13 97 views
0

任何機構可以建議哪些人會更快地執行(考慮處理大數據量超過兩百萬行)更快的更新查詢

UPDATE first_table ft, second_table st SET ft.Dataset=3 
WHERE st.Dataset =0 
AND (ft.Dataset =1 || ft.Dataset=2) 
AND (ft.ID IS NULL) 
AND st.First_Name = ft.First_Name 
AND st.Last_Name = ft.Last_Name 
AND st.Zip = ft.Zip 

OR

把下面分成兩個不同的更新查詢

(ft.Dataset =1 || ft.Dataset=2) 
+0

實際上,這將取決於你的引擎,索引,表結構,數據類型等... – jcho360 2013-02-13 15:48:30

+0

是啊我已經設置索引,表是在innodb – 2013-02-13 15:49:53

+0

innodb應該運行一點點慢,因爲它必須更新索引,如果你在2中分開查詢,我不會看到它將如何實現更快的查詢,除了你正在更新2MM的行 – jcho360 2013-02-13 15:53:06

回答

0

應該沒有什麼區別,但是最好不要只是猜測。如果它以某種方式嘗試從兩個查詢中分別預載所有行,則可能會比慢很多(假設您沒有內存中的行)。

+0

是的,我期待着同樣的事情。謝謝。 – 2013-02-13 15:59:27