CS-Notes 学习笔记
Java 后端 · MySQL

一条 SQL 查询语句在 MySQL 中是怎样执行的?

先自己想一想,再看参考要点

参考要点

  • MySQL 分为 Server 层和存储引擎层,Server 层负责连接、解析、优化和执行,存储引擎(例如 InnoDB)负责存取数据
  • 连接器校验用户名和密码并维持连接,解析器做词法和语法分析,关键字写错时报 ERROR 1064
  • 预处理检查表和列是否存在以及权限
  • 优化器估算各种执行方式的代价,选出代价最小的,并不是有索引就用,用 EXPLAIN 和 optimizer_trace 可以看到选择和估算
  • 执行器按执行计划调用存储引擎的接口,8.0 已经移除了查询缓存,更新语句还要写 undo log、redo log 和 binlog
在学习站中自测这道题

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。