
MySQL分为Server层和存储引擎层。
Server层包含:连接器、查询缓存、分析器、优化器、执行器以及所有内置函数。存储过程、触发器、视图等都在这一层。
存储引擎层:负责数据的存储和提取。目前最常用的是InnoDB。
连接器:负责跟客户端建立连接、获取权限、维持和管理连接。
可能有两种情况:1. 定期断开长连接;2.或者是重建连接
查询缓存:8.0之后就没有这个功能了。一般实现就是通过key(查询语句)value = 查询结果的方式来触发缓存。
分析器:词法分析:即把mysql的关键字识别出来,同时识别出来字段名、表名;语法分析:根据词法分析的结果,判断语法规则是否符合预期。
优化器:根据分析器的结果,知道了这个sql是可以执行了,但是这个sql执行过程是使用了哪个索引,或者是表关联的顺序,来选择他认为执行效率最高的执行方法。
执行器:打开表的时候,执行器就会根据表的引擎定义,去使用这个引擎提供的接口。