一个 SQL 语句在 MySQL 中的执行流程
从上图可以看出,MySQL 主要由下面几部分构成:
- 连接器:身份认证和权限相关(登录 MySQL 的时候);
- 查询缓存:执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为此功能不太实用);
- 分析器:没有命中缓存的话,SQL 语句就会经过分析器,分析器说白了就是要看你的 SQL 语句要干嘛,再检查你的 SQL 语句语法是否正确;
- 优化器:按照 MySQL 认为最优的方案去执行;
- 执行器:执行语句,然后从存储引擎返回数据。执行语句之前会先判断是否有权限,如果没有权限的话,就会报错;
- 插件式存储引擎:主要负责数据的存储和读取,采用的是插件式架构,支持 InnoDB 、MyISAM、Memory 等多种存储引擎。