【发布时间】:2014-09-11 23:43:52
【问题描述】:
这两个查询在性能上是否相同?
select a.*
from a
inner join b
on a.bid = b.id
inner join c
on b.cid = c.id
where c.id = 'x'
和
select a.*
from c
inner join b
on b.cid = c.id
join a
on a.bid = b.id
where c.id = 'x'
是先join所有表再过滤条件,还是先应用条件来减少join?
(我用的是sql server)
【问题讨论】:
-
这可能会有所帮助:Order Of Execution of the query
-
SQL 服务器优化器通常足够聪明,可以找出使用的最佳顺序,因此连接表顺序实际上不会影响性能
标签: sql sql-server