join中条件的顺序会影响查询性能吗?

Roh*_*ibe 7 sql db2 join

我正在写一些东西SQL,我的脑海中出现了一个问题。

SQL是这样的:

select
    t1.column1,
    t2.column2
from
    table1 t1
    inner join table2 t2
    on  t1.keyA = t2.keyA
where
    t1.name = 'kim kardashian'
Run Code Online (Sandbox Code Playgroud)

子句中的顺序会on影响SQL性能吗?

on t1.keyA = t2.keyAon t2.keyA = t1.keyA有什么区别吗?

无论顺序如何,结果SQL都是相同的。

Gor*_*off 4

子句中条件的顺序on不应影响性能。为什么不?SQL 执行的高级步骤分为三个步骤:

  1. 解析查询
  2. 构建并优化“可执行”代码
  3. 执行代码

第二级优化查询,并应考虑执行查询的不同方法。连接条件是此优化的一部分——一次性完成。

从理论上讲,s 的顺序也并不重要join,尽管在非常复杂的查询中,它可能很重要。