最佳性能的Where子句中的ANDS顺序

Sco*_*ott 10 sql performance

我的想法是,如果我把我的ANDs过滤掉那些过滤掉少量行之前的行,那么我的查询应该运行得更快,因为And语句之间的选择集要小得多.

但是,SQL语句的WHERE子句中AND的顺序是否真的会影响SQL的性能,或者已经为此优化了引擎?

Luk*_*keH 18

这真的取决于优化者.

应该无关紧要,因为无论您如何描述它,找出运行查询的最佳方式都是优化者的工作.

在实践中,没有优化器是完美的,因此您可能会发现重新排序子句确实会对特定查询产生影响.确切知道的唯一方法是使用您自己的架构,数据等自行测试.


小智 6

大多数SQL引擎都经过优化,可以为您完成这项工作.但是,我发现首先尝试刻掉最大的桌子可能会产生很大的不同 - 这并没有伤害!