MySql可以分为Server层和存储引擎层两部分。Server层包括连接器、查询缓存、分析器、优化器、执⾏器等,涵盖MySql的大部分核心功能;存储引擎层负责数据的存储和提取。。
连接器连接器负责跟客户端建⽴连接、认证身份获取权限、维持和管理连接。
查询缓存若查询结果已经被缓存在内存之中,则直接返回结果。若内存中无缓存,则继续执行后续阶段。
由于缓存失效非常频繁且查询缓存命中率低,故MySql8.0以后将查询缓存功能删除。
MySQL需要对SQL语句做解析。这部分主要是进行词法分析和语法分析。
优化器优化器的作用主要是确定语句的执行方案,保证执行时最优的效率。比如在表⾥⾯有多个索引的时候,决定使⽤哪个索引;或者在⼀个语句有多表关联(join)的时候,决定各个表的连接顺序。
执行器执行器是负责执行语句。
- 首先确定是否有执行操作的权限
- 然后根据表的引擎定义去使用引擎提供的接口
- 下一步扫描表并将查找结果放入结果集
- 将结果返回客户端
返回结果完毕后,MySql会进行清理,并等待新的请求。



