ON子句的两个位置:哪个更快?

时间:2013-02-13 14:24:12

标签: mysql

以这种方式加入给定选择是否会更快

select ...
join table1 
on condition1
join table2
on condition2

然后这个

select ...
join table1
join table2
on condition1
and condition2

因为你保持临时表更小?

(我们假设:condition1与table2无关。)

1 个答案:

答案 0 :(得分:2)

理论上,过滤条件应该“尽快”说明,即选项1 可能表现更好。

实际上,大多数情况下,SQL解析器会将任一版本优化为相同的执行计划。也就是说,除非您的条件确实扭曲,否则table1table2实际上是子查询。

如果您要使用实际查询,请检查执行计划:EXPLAIN [your query here]

(对不起,如果你没有给我们提供更多......具体细节,那么很难具体说明)