跳至内容
1. SQL执行流程

1. SQL执行流程

Q: 一条SQL的执行逻辑是什么?

MySQL执行一条SQL语句的完整流程:

1. 权限检查与缓存查询

  • 先检查该语句是否有权限,如果没有权限,直接返回错误信息
  • 如果有权限会先查询缓存(MySQL 8.0 版本以前)

2. 语法分析(分析器)

  • 进行语法分析,提取SQL语句中的关键元素(如SELECT、FROM、WHERE等)
  • 判断SQL语句是否有语法错误,比如关键词是否正确等

3. 查询优化(优化器)

  • MySQL服务器会对查询的语句进行优化,确定执行的方案
  • 选择最优的执行计划(如选择哪个索引、表的连接顺序等)

4. 执行查询(执行器)

  • 完成查询优化后,按照生成的执行计划调用数据库引擎接口
  • 返回执行结果
SQL语句 → 权限检查 → 查询缓存 → 语法分析 → 查询优化 → 执行查询 → 返回结果
注意:MySQL 8.0 版本移除了查询缓存功能,因为在大多数场景下,查询缓存的弊大于利。