内连接与左连接 - 对于相同的结果更快?

lau*_*kok 0 mysql sql join inner-join left-join

如果内连接和左连接都可以实现相同的结果,哪一个更快并且具有更好的性能(特别是对于大数据)?

内部联接:

SELECT *
FROM Table_A A
INNER JOIN Table_B B
ON A.PK_A = B.PK_B
Run Code Online (Sandbox Code Playgroud)

左连接:

SELECT *
FROM Table_A A
LEFT JOIN Table_B B
ON A.PK_A = B.PK_B

WHERE A.PK_A = B.PK_B
Run Code Online (Sandbox Code Playgroud)

表A:

PK_A    User
1   FOX
2   COP
3   TAXI
6   WASHINGTON
7   DELL
5   ARIZONA
4   LINCOLN
10  LUCENT
Run Code Online (Sandbox Code Playgroud)

表-B:

PK_B    Message
1   TROT
2   CAR
3   CAB
6   MONUMENT
7   PC
8   MICROSOFT
9   APPLE
11  SCOTCH
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?如何测试大数据的性能?

Mag*_*nus 9

通过添加WHERE A.PK_A = B.PK_B查询优化器足够聪明,可以理解您想要inner join并使用它.因此,它们将具有相同的性能,因为将创建相同的执行计划.

在此输入图像描述 因此,当你想要一个按键时,永远不要使用按键,维护和理解就会令人沮丧.left joinwhereinner join