SQL 执行流程

SQL 执行流程

你就记一条完整链路:从写 SQL → 到数据库返回结果,一共这几步。

1. 应用层发起

  • Java 代码调用 mapper 方法
  • MyBatis 拼接 SQL、参数
  • 通过 JDBC 向 MySQL 发送请求

2. 连接器层(Connection)

  • 验证账号密码、权限
  • 建立连接,拿到执行线程

3. 查询缓存(MySQL 8.0 已去掉)

  • 先查缓存有没有相同 SQL
  • 命中直接返回
  • 没命中继续往下

4. 解析器(Parser)

  • 词法分析:拆出关键字(select、from、where...)
  • 语法分析:检查 SQL 语法是否合法
  • 生成解析树

5. 预处理器(Preprocessor)

  • 检查表名、字段名是否存在
  • 处理视图、表达式
  • 生成新的解析树

6. 优化器(Optimizer)

  • 决定走哪个索引
  • 决定 join 顺序
  • 生成最优执行计划

7. 执行器(Executor)

  • 调用存储引擎接口
  • 先查缓冲池(Buffer Pool)
  • 不命中再去磁盘加载数据

8. 存储引擎

  • InnoDB 负责实际数据读取/写入
  • 返回结果给执行器

9. 结果返回

  • 依次返回客户端
  • MyBatis 封装成 Java 对象(List/Bean)

面试一句话背诵版

SQL 流程是:应用通过 JDBC 发送 SQL → 连接器鉴权 → 解析器语法解析 → 预处理器校验 → 优化器生成执行计划、选择索引 → 执行器调用存储引擎查询数据 → 最后结果返回并由 MyBatis 映射成 Java 对象。

相关推荐
你看我名字6 小时前
Redis 高可用、持久化与故障切换:从缓存组件到云上基础设施
数据库·redis·缓存
风翼靓崽7 小时前
centos7以mysql为例自建yum源
数据库·mysql·adb
码农阿豪7 小时前
MongoDB迁移到金仓数据库:商品属性继续灵活存,订单报表交给 SQL
数据库·sql·mongodb
秋饼7 小时前
Redis 全面解析:从数据结构到主从/哨兵/集群、分布式锁与面试高频考点,代码到原理一次讲透
数据库·redis·分布式·面试·后端开发
秋名RG7 小时前
一条 SQL 语句在 MySQL 中的执行过程详解
数据库·sql·mysql
Canmag 兴隆磁性7 小时前
钕铁硼磁片取向方向检测自动化方案:从人工目检到流水线在线分选的工程实践
运维·数据库·自动化·工业自动化·钕铁硼·自动化检测·磁材料
yangmu32038 小时前
安全审批与日志审计:从“谁批准”到“谁执行”的全链路闭环
数据库
R²AIN SUITE8 小时前
多云或私有云环境怎么选项目管理工具?RainSuite等5种产品的8项部署验证
服务器·网络·数据库
隔振降噪研究员8 小时前
裁断机一响,楼板为什么会跟着抖?
大数据·linux·数据库·人工智能