1
我有一個腳本,必須多次更新大表中的某些字段。 在主循環中,我做的查詢是這樣的:更新時更新行
UPDATE books SET title='ABC' WHERE code=123
我知道,在的情況下超過99.9%,標題將不會被查詢的改變,因爲它已經被設置爲「ABC」 。 我想使這個循環儘可能高效。 相反,我可以這樣做:
SELECT title FROM books WHERE code=123
然後,將結果與我的字符串進行比較,只有當它是不同的執行更新。 當標題改變時,我會再運行一個查詢,但這是微不足道的,因爲幾乎從不需要更改該值。
我的問題是:這會更有效率嗎?換句話說,UPDATE是不會導致對字段進行更改的效率比檢索相同字段的SELECT效率更高?
難道你不能使用'UPDATE書籍SET標題='ABC'WHERE code = 123 AND title!='ABC''? 在效率方面,循環遍歷SELECT的結果將不如更新記錄更有效,因爲系統花費的大部分時間將定位要更新的記錄,而不是更新它。 –