【发布时间】:2012-10-20 23:38:07
【问题描述】:
可能重复:
Does the order of fields in a WHERE clause affect performance in MySQL?
WHERE 子句中元素的顺序会改变查询的速度吗?
我有以下几点:
SELECT * FROM table1 WHERE a<b
。这将返回 500 条记录。
SELECT * FROM table1 WHERE c<d
。这将返回 130000000 条记录。
现在,如果您可以选择:
SELECT * FROM table1 WHERE a<b AND c<d
或
SELECT * FROM table1 WHERE c<d AND a<b
这两个查询中哪一个会更快?顺序重要吗?
【问题讨论】:
-
谓词的顺序没有区别。
-
但是mysql不是一个接一个地做约束。在这种情况下,我猜第一个会更快,因为它为第二个约束留下了更少的条目?
-
我可能会得到一个幸运的结果。我想确定...
-
经验测试是唯一的方法来确定...