
查询缓存
这里的查询缓存是 Server 层的,不是存储引擎层的 buffer pool,不过 Server 的缓存在 mysql8 之后被废弃了。
解析 SQL
解析器会对 sql 进行词法分析、语法分析,构建语法树

如果 sql 语法不对,就会在次阶段报错,如果是字段不存在则在此阶段是不会发现的。
执行 SQL
prepare 阶段
预处理器会检查 SQL 查询语句的表或字段是否存在
optimize 阶段
在优化阶段,优化器会为 SQL 指定执行计划,比如表中有多个索引,优化器会基于成本考虑选择使用哪个索引
execute 阶段
执行器会和存储引擎交互