使用JOIN与WHERE子句时是否有性能提升?

时间:2016-01-08 12:17:14

标签: sql oracle

根据以下代码示例,使用JOIN而不是WHERE子句是否存在性能差异(或任何其他原因):

EX1。

select *
from table_1, table_2
where table_1.id=table_2.id;

EX2。

select *
from table_1
    join table_2 on
    table_1.id = table_2.id;

1 个答案:

答案 0 :(得分:5)

您可以参考:Bad habits to kick : using old-style JOINs该链接适用于SQL Server,但大多数点也适用于Oracle )。现在不鼓励使用逗号分隔的JOINS。您应该使用JOINS的第二种格式,因为它更具可读性,并且现在强烈推荐并广泛使用。就性能而言,两种语法之间存在 no 差异。 JOINS的第一种格式(即逗号分隔)是1992年以前的标准SQL连接语法。

同样在Oracle的情况下,当你必须使用LEFT JOINS或RIGHT JOINS时,你必须使用old style of using (+)来识别外部连接的表。所以它令人困惑,使查询的可读性降低。所以使用显式JOINS(版本2在你的情况下)使它更容易理解和更易读。