查询缓存分析器优化器执行器存储引擎总结连接器会监听客户端发来的连接请求,把客户端的指令转发给缓存。 查询缓存 之前执行过的语句会以KV的形式缓存在内存中查询之前先查找之前执行过的相同语句不推荐使用缓存:数据表修改后,会删除所有相关缓存MySQL8.0之后就把缓存给去掉了 这个粒度相当大,这个操作不是行相关的,而是表相关的 分析器 分析器的作用是知道你要“干什么”先做词法分析,识别SQL语句中的关键字再做句法分析,判断SQL语句是否符合语法 优化器优化器的作用是要知道“怎么做” 优化器的主要工作室决定如何使用索引 执行器执行器的主要工作是校验权限、调用存储引擎 执行器首先校验此用户对目标数据有无权限执行器会以行为粒度,调用存储引擎,执行SQL在没有索引的情况下,执行器会循环查询所有行 存储引擎存储引擎的任务是将执行器的指令落实在数据文件上 不同存储引擎的原理和执行方法有很大不同 总结SQL语句执行的过程涉及到了MySQL几乎所有的模块 一个SQL语句是按照 分析—优化—执行—落盘的步骤执行的MySQL 8.0之后已经停用了缓存功能不同存储引擎的执行方法不通