
MySQL大体可以分为Server层和存储引擎两部分。
Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有内置函数,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。
存储引擎层负责数据的存储和提取。
| 组件 | 作用 |
|---|---|
| 连接器 | 负责跟客户端建立连接、获取权限、维持和管理连接 |
| 查询缓存 | 命中则直接返回结果 |
| 分析器 | 词法分析、语法分析 |
| 优化器 | 表中有多个索引时,决定选择哪个索引;一个语句有多表关联(join)时,决定表的连接顺序 |
| 执行器 | 开始执行语句,判断对表有没有执行查询权限;有权限则,打开表继续执行,根据表的引擎定义,去使用这个引擎提供的接口 |
