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

Har*_*ing 4 sql oracle

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

EX1.

select *
from table_1, table_2
where table_1.id=table_2.id;
Run Code Online (Sandbox Code Playgroud)

EX2.

select *
from table_1
    join table_2 on
    table_1.id = table_2.id;
Run Code Online (Sandbox Code Playgroud)

Rah*_*thi 5

您可以参考:糟糕的习惯:使用旧式JOIN(该链接适用于SQL Server,但大多数点也适用于Oracle).现在不鼓励使用逗号分隔的JOINS.您应该使用JOINS的第二种格式,因为它更具可读性,并且现在强烈推荐并广泛使用.就性能而言,两种语法之间没有区别.另外,JOINS的第一种格式(即逗号分隔)是1992年以前的标准SQL连接语法.

同样在Oracle的情况下,当您必须使用LEFT JOINS或RIGHT JOINS时,您必须使用旧的使用(+)样式,样式用于标识外部连接的表.所以它令人困惑,使查询的可读性降低.因此,使用显式JOINS(在您的情况下为版本2)使其更容易理解和更易读.

  • 两者之间没有**性能差异,甚至不是"非常轻微"的差异. (2认同)