SELECT语句中列的顺序是否有所不同?

时间:2010-06-16 22:41:20

标签: sql database

这个问题的灵感来自之前发布在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 *,因为当前列表较小。

1 个答案:

答案 0 :(得分:7)

对于Oracle和Informix以及任何其他自尊的DBMS,列的顺序应该对性能没有影响。类似地,应该是查询引擎找到处理Where子句的最佳顺序的情况,因此顺序与所有相等的事物无关(即,查看可能强制执行顺序的过去的构造)。