MySQL 可以分为 Server 层、存储引擎层两部分。
Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。
存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始成为了默认存储引擎。
MySQL的执行流程:
1、查询缓存
一般不建议使用,query_cache_type 设置成 DEMAND,MySQL 8.0 开始直接去掉了该功能。
2、分析器
分析关键字,判断 SQL 语句是否满足 MySQL 语法,判断表、列、字段是否存在。
3、优化器
选择索引、连表顺序、选择执行方案、优化执行效率。
4、执行器
校验权限 => 打开表 => 调用引擎接口 => 返回结果给客户端。