SQL连接中的简单优化

时间:2015-02-12 20:16:19

标签: sql join

采用以下简单的SQL。它从两个表中提取任何字段集。 A"乔布斯"表,以及我们从jobs表中加入的一些支持表。请注意,它是左连接,因为在这种情况下,支持表数据不需要在那里。

select [fields]
from jobs j
left join supporting_data sd on sd.id = j.supporting_data_id

如果编写如下,查询是否会执行任何不同的操作:

select [fields]
from jobs j
left join supporting_data sd 
    on (j.supporting_data_id > 0) and (sd.id = j.supporting_id)

不同之处在于,如果主表的记录为" -1"我通常在数据库中看到,表示"没有价值"那么布尔短路评估应该启动并停止查询检查" supports_data"该记录完全没有表格。

当然,该领域应始终有一个索引。但如果我的记录是" jobs.supporting_id = -1"那么这不会导致数据库引擎扫描该记录的索引吗?也许可以忽略不计......只是想知道内部是否有任何差异。

0 个答案:

没有答案