我的腳本需要通過大量的行運行,分析的內容,然後再對它們進行更新(選擇性)只是想確認是否通過運行一個MySQL的更新超過多個查詢
很顯然,我有一個循環更快以評估每一行...
我通常會在此循環內發出一個SQL UPDATE查詢(對於當前正在評估的行)... Infact我更喜歡這個更好,更清潔的代碼等。 $ q =「UPDATE mytable SET status ='online'WHERE id = '22'」;
但最近我一直在使用「IN」的條款被..循環會聚集在CSV的ID,再後來做的;
if ids exist do query
$q = "UPDATE mytable SET status='online' WHERE id IN(22,25,147)";
所以是2種技術之一顯着更好?事實上?也可能我也堅持瓦特/ IM哪裏舒服...
沒錯,代碼和其他任務我必須做的,它更容易有循環內的單獨的更新SQLS火...
'IN'通常是朝着這個較慢的方法,但是你可以運行一個基準,計算它需要雙方的時間,你的情況,並據此作出決定 –
您可以分析您的查詢,可以看到它需要執行的時間。通常,更新語句運行得更快,但考慮到多個更新語句,它將花費大量的數據庫資源和時間來執行。所以在這種情況下,IN應該給你更多的表現。的 – ankurtr
可能重複[MySQL或VS在性能(http://stackoverflow.com/questions/782915/mysql-or-vs-in-performance) – Matt