Mysql SQL Server是否优化常量表达式?
如果我在SQL Server中执行类似操作Mysql SQL Server是否优化常量表达式?,mysql,sql,sql-server,query-optimization,Mysql,Sql,Sql Server,Query Optimization,如果我在SQL Server中执行类似操作 select * from mytable where 1=1 …是对1=1条件进行了优化,还是对每一行进行了实际评估 我还想知道其他DBMS在这方面的表现,特别是MySQL。使用MySQL的解释计划和SQL Server的设置SHOWPLAN\u ALL ONSQL Server: 第一个示例: SQL Server查询优化器会自动删除1=1谓词,因为它总是true: 第二个示例: 因为1=2谓词总是false,所以执行计划不包括数据访问操作符(
select *
from mytable
where 1=1
…是对1=1
条件进行了优化,还是对每一行进行了实际评估
我还想知道其他DBMS在这方面的表现,特别是MySQL。使用MySQL的
解释计划和SQL Server的设置SHOWPLAN\u ALL ONSQL Server:
第一个示例:
SQL Server查询优化器会自动删除1=1
谓词,因为它总是true
:
第二个示例:
因为1=2
谓词总是false
,所以执行计划不包括数据访问操作符(表
/索引
扫描
/搜索
)来从dbo.Customer
表读取数据。相反,执行计划包含一个常量扫描
操作符,该操作符将从dbo.Customer
表返回列列表,而不返回任何行。这是在行动:-)
注意:我使用的是SQL Server 2012开发人员版。可能与