可能重复:
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
这两个查询中的哪一个会更快?订单是否重要?
答案 0 :(得分:3)
唯一影响性能的时间是索引。
如果您的索引位于(a, c)
,则索引从左到右会导致WHERE c < d AND a < b
的谓词运行速度变慢。
如果您没有索引,则订单无关紧要。
答案 1 :(得分:0)
不,没有区别。就像在MATH中一样,A + B = B + C
。这只意味着互换两者并没有任何区别。
答案 2 :(得分:0)
我不这么认为会有任何区别,无论如何它都会被sql优化。 有关此问题的更多信息:Does the order of fields in a WHERE clause affect performance in MySQL?