MySQL:哪一个更快,为什么?

时间:2017-06-14 20:32:32

标签: mysql performance

首选以下哪个查询?为什么?他们完成了同样的事情。

select e1.Name from Employee e1, Employee e2
    where e1.ManagerId = e2.Id and e1.Salary > e2.Salary

select e1.Name from Employee e1 join Employee e2
       on e1.ManagerId = e2.Id and e1.Salary > e2.Salary

我听说使用JOIN更好,但似乎稍慢。

1 个答案:

答案 0 :(得分:0)

在这种情况下它们是相同的 。添加LEFT,所有投注均已关闭。

通过对每个人执行此操作,您可以发现它们完全相同:

EXPLAIN EXTENDED SELECT ...;
SHOW WARNINGS;

您将看到一个变体被转换为看起来与另一个变体相同。

由于两个公式的语义相同(没有LEFT),优化程序会对它们进行相同的处理。

使用JOIN ... ON