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

标签 sql database

这个问题的灵感来自之前发布在 SO 上的一个问题,“Does the order of the WHERE clause make a differnece?”。如果将 WHERE 部分中使用的列放在 SELECT 语句的开头,是否会提高 SELECT 语句的性能?

例子:

    SELECT customer.id, 
           transaction.id, 
           transaction.efective_date, 
           transaction.a,
           [...]
      FROM customer, transaction 
     WHERE customer.id = transaction.id;

我确实知道,与使用 SELECT * 相比,将列列表限制为 SELECT 语句中仅需要的列可以提高性能,因为当前列表较小。

最佳答案

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

关于sql - SELECT 语句中列的顺序是否有所不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3057690/

相关文章:

sql - 这如何不使 varchar2 效率低下?

在 SQL Server 中使用 With Union 的 SQL 构建路径

mysql - 如何按任意顺序按列对行进行排序?数据库

database - net.sourceforge.jtds.jdbc.ClobImpl@4013f648出现在Jmeter中JDBC请求的响应中

MySQL结果到数组VB.NET

sql - 微软SQL服务器: converting 3 rows to 3 columns

mysql - having/where 子句中的未知列

SQL Server 授予登录名(用户)db_owner 对数据库的访问权限

sql - 在 Liquibase 中执行第二次插入时如何引用自动递增的 ID?

android - Android 上的 Couchbase lite - 通用架构?