SQL 查询执行流程

SQL 执行通常会经过解析、重写、优化和执行阶段,理解这条链路是分析慢查询和执行计划的基础。

#type / concept #status / growing #tech / dev / backend #resource / database #resource / sql

[!info] related notes

SQL 查询执行流程

一句话定义

一条 SQL 从文本到结果,通常要经历解析、重写、优化和执行几个主要阶段。

核心机制 / 工作原理

典型流程可以简化为:

  1. 解析:检查语法是否合法
  2. 语义分析:确认表、列、函数是否存在
  3. 重写:把视图、规则或某些语法糖改写成内部表示
  4. 优化:枚举可能计划,选择代价更低的一种
  5. 执行:按计划读取数据、过滤、连接、排序并返回结果

真正影响性能的关键点常在优化和执行阶段。

最小例子 / 最小场景

对于:

SELECT id, name
FROM users
WHERE email = 'alice@example.com';

数据库会考虑:

  • users.email 上是否有索引
  • 预计命中多少行
  • 全表扫描还是索引扫描更便宜

边界与易混淆点

  • 数据库不是按你写 SQL 的顺序机械执行,它会重排和优化。
  • 语法正确不代表计划高效;很多性能问题是“能跑,但代价非常大”。
  • 执行计划是成本估计结果,不是绝对真理,所以需要结合真实执行结果来看。
创建于 2026/5/3 更新于 2026/5/27