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