MySQL的执行流程如下:
1. 客户端向服务器端发送SQL命令。
2. 服务器端连接模块连接并验证。
3. 缓存模块解析SQL为Hash并与缓存中Hash表对应。如果有结果直接返回结果,如果没有对应继续向下执行。
4. 解析器解析SQL为解析树,如果出现错误,报SQL解析错误。如果正确,向下传递,解析时主要检查SQL中关键字,检查关键字是否正确、顺序是否正确、引号是否对应等。
5. 预处理器对解析树继续处理,处理成新的解析树,检查表是否存在、列是否存在、名字和别名是否有歧义等。
6. 优化器根据开销自动选择最优执行计划,生成执行计划。
7. 执行器执行执行计划,访问存储引擎接口。
8. 存储引擎访问物理文件并返回结果。
9. 如果开启缓存,缓存管理器把结果放入查询缓存中。
10. 返回结果给客户端。