这个问题的灵感来自之前发布在SO上的问题,"WHERE子句的顺序是否会产生差异?".如果WHERE部分中使用的列放在SELECT语句的开头,它会改善SELECT语句的性能吗?
例:
SELECT customer.id,
transaction.id,
transaction.efective_date,
transaction.a,
[...]
FROM customer, transaction
WHERE customer.id = transaction.id;
Run Code Online (Sandbox Code Playgroud)
我知道将SELECT列表中的列列表限制为仅需要的列可以提高性能,而不是使用SELECT*,因为当前列表较小.
对于Oracle和Informix以及任何其他自尊的DBMS,列的顺序应该对性能没有影响.类似地,应该是查询引擎找到处理Where子句的最佳顺序的情况,因此顺序不应该与所有相等的事物相关(即,查看可能强制执行顺序的过去的构造).