【问题标题】:Short circuit evaluation for SQL query optimisationSQL 查询优化的短路评估
【发布时间】:2012-03-27 05:52:21
【问题描述】:

我想使用以下短路评估优化我的查询:

查询一:

Select emp_id, emp_name 
From emp_table 
Where emp_name = "xyz" 
and emp_id >= 50; 

查询 2:

Select emp_id, emp_name 
From emp_table 
Where emp_name = "xyz" 
and (emp_id >= 50 or 1 = 0); 

在查询 2 中添加 or 1 = 0 条件(短路评估)会导致优化吗?
在上面的例子中,短路评估究竟是如何工作的?

【问题讨论】:

标签: sql query-optimization short-circuiting


【解决方案1】:

它不会导致优化(好吧,如果数据库引擎中存在错误,它可能会解决该错误;)

但我认为这个问题与 short circuit evaluation 无关 - 0 and ?1 or ? 是短路评估,而不是 1 = 00 or ?1 and ?? and (? or 1 = 0)

加上引擎应该在编译期间从您的查询中删除 or 1 = 0(= 优化查询),但我不知道如何检查生成的字节码,所以我不确定这个...

【讨论】:

    猜你喜欢
    • 2015-09-12
    • 1970-01-01
    • 2014-04-06
    • 2015-11-14
    • 2017-01-21
    • 2012-02-10
    • 2010-12-21
    • 1970-01-01
    • 2013-05-21
    相关资源
    最近更新 更多