2014-11-05 66 views
0

更新100萬條記錄而不指定WHERE子句比指定更快嗎?SQL:更新沒有WHERE子句

UPDATE test 
SET col1 = 'somevalue'; 

UPDATE test 
SET col1 = 'somevalue' 
WHERE col2 > 0; 

道歉的noob問題,從邏輯上講,我認爲是沒有然而其指定爲它不會檢查在條件滿足,更快,這也可能意味着它會跳過其中條件不更新一行遇到。

是否有一個在線工具,我可以用樣本數據測試速度。

感謝您的幫助。

+1

我的猜測是,它將取決於匹配條件的行數,無論是索引和寫入數據的成本。如果過濾器將使用索引過濾1000行,並將更新應用於它們,則應該快得多。無論如何,刪除where改變了查詢的含義。 – jpw 2014-11-06 00:00:56

+2

這對練習很重要。條件得到滿足?或者查詢運行儘快。我猜想99%的情況下你只想更新你需要的行。與數據的一致性相比,性能是次要的 – 2014-11-06 00:04:42

回答

1

答案是,它取決於。如果100萬條記錄中只有10條滿足條件且條件具有可靠索引,那麼比更新所有內容要快得多。