sql - 连接中的条件顺序会影响查询性能吗?

标签 sql join db2

我正在写一些 SQL一个问题出现在我的脑海中。
SQL是这样的:

select
    t1.column1,
    t2.column2
from
    table1 t1
    inner join table2 t2
    on  t1.keyA = t2.keyA
where
    t1.name = 'kim kardashian'

订单是否在on条款影响 SQL表现?
on t1.keyA = t2.keyAon t2.keyA = t1.keyA没有区别吗?
SQL 的结果无论顺序如何,都是一样的。

最佳答案

on中的条件顺序条款不应影响性能。为什么不?概括地说,SQL 执行的三个步骤:

  • 解析查询
  • 构建和优化“可执行”代码
  • 执行代码

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

    理论上,join的顺序没有关系。 s 要么是,尽管在非常复杂的查询中,它可能很重要。

    关于sql - 连接中的条件顺序会影响查询性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49008906/

    相关文章:

    SQL Server 'FETCH FIRST 1 ROWS ONLY' 无效使用

    mysql - 如何以编程方式创建一对零或一的关系 - MySQL?

    php - 从 Mysql DB 中的文本字段中检索一段文本,直到找到特殊字符

    database - DB2 中具有一个可为空列的复合唯一键

    sql - Athena 查询存储为字符串的 JSON 字段

    php - 关于连接两个mysql表的问题

    sql - 使用内连接两次

    file - Powershell:合并 2 个 CSV 文件中的选择性列

    DB2 未监听其默认端口

    mysql - sql 查询 n 行加上另外一行 id