MySQL性能 - JOIN ON VS JOIN上使用多个表

问题描述:

原则,其中之一是更快地讲:MySQL性能 - JOIN ON VS JOIN上使用多个表

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) 
+1

请阅读此http://meta.*.com/a/271056/。请特别注意查询性能部分。然后,请[编辑]你的问题。如果你不这样做,你可以问问*旅程有多长时间?* –

+1

可能的表现是相同的(不确定100%),但是请注意'USING'和'ON'有时会给出一些不同的结果:https://*.com/questions/45605943/mysql-unable-to-get-all-columns-with-select/45606545#45606545 –

+0

我一直以为第一个会是一个错误(缺少或使用第一次加入的子句) – ysth

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

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

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