MySQL的执行流程如下:

1. 客户端向服务器端发送SQL命令。

2. 服务器端连接模块连接并验证。

3. 缓存模块解析SQL为Hash并与缓存中Hash表对应。如果有结果直接返回结果,如果没有对应继续向下执行。

4. 解析器解析SQL为解析树,如果出现错误,报SQL解析错误。如果正确,向下传递,解析时主要检查SQL中关键字,检查关键字是否正确、顺序是否正确、引号是否对应等。

5. 预处理器对解析树继续处理,处理成新的解析树,检查表是否存在、列是否存在、名字和别名是否有歧义等。

6. 优化器根据开销自动选择最优执行计划,生成执行计划。

7. 执行器执行执行计划,访问存储引擎接口。

8. 存储引擎访问物理文件并返回结果。

9. 如果开启缓存,缓存管理器把结果放入查询缓存中。

10. 返回结果给客户端。