MySQL性能 - JOIN ON和JOIN使用多个表

时间:2017-08-16 17:33:34

标签: mysql sql query-performance

原则上说,哪一个更快:

SELECT FROM t1 INNER JOIN t2 INNER JOIN t3 ON t1.c = t2.c = t3.c

VS

SELECT FROM t1 INNER JOIN t2 USING (c) INNER JOIN t3 USING (c)

2 个答案:

答案 0 :(得分:2)

最简单的方法是看看你的explain plan。如果你看两者,你可能会看到零差异。

这里的using()关键字只是一个简写表达式。它的评估与您的其他选项相同,因此对性能没有影响。

答案 1 :(得分:0)

任何SQL语句的FROM部分在SQL语句的任何其他部分之前首先被逻辑处理,并且两个语句都在FROM部分中加入(只是不要将连接条件添加到WHERE子句)。假设两者都具有正确的语法,那么更大的问题是这些是否来自M:1,M:1上下文以及主键和外键上是否都有索引。然后通过查询分析器运行它们以测量实际性能。