2

可能重复:
WHERE 子句中的字段顺序是否会影响 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

这两个查询中的哪一个会更快?顺序重要吗?

4

3 回答 3

3

唯一会影响性能的是索引。

如果您有一个索引 on (a, c),则谓词 ofWHERE c < d AND a < b会运行得更慢,因为索引从左到右。

如果您没有索引,则顺序无关紧要。

于 2012-10-31T13:35:54.823 回答
0

不,没有区别。就像在数学中一样,A + B = B + C. 这只是意味着互换两者没有任何区别。

于 2012-10-31T13:34:08.140 回答
0

我认为不会有任何区别,无论如何它都会被sql优化。有关此问题的更多信息:WHERE 子句中字段的顺序会影响 MySQL 的性能吗?

于 2012-10-31T13:36:02.633 回答