2014-11-05 92 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条满足条件且条件具有可靠索引,那么比更新所有内容要快得多。