共计 633 个字符,预计需要花费 2 分钟才能阅读完成。
连接器
简略总结一下:
与客户端进行 TCP 三次握手建设连贯;
校验客户端的用户名和明码,如果用户名或明码不对,则会报错;
如果用户名和明码都对了,会读取该用户的权限,而后前面的权限逻辑判断都基于此时读取到的权限
解析器
词法剖析,语法分析
执行 SQL
每条 SELECT 查问语句流程次要能够分为上面这三个阶段:
prepare 阶段,也就是预处理阶段;
optimize 阶段,也就是优化阶段;
execute 阶段,也就是执行阶段;
预处理器
优化器
通过预处理阶段后,还须要为 SQL 查问语句先制订一个执行打算,这个工作交由「优化器」来实现的。
优化器次要负责将 SQL 查问语句的执行计划确定下来要想晓得优化器抉择了哪个索引,咱们能够在查问语句最后面加个 explain 命令,这样就会输入这条 SQL 语句的执行打算
- 笼罩索引
执行器
经验完优化器后,就确定了执行计划,接下来 MySQL 就真正开始执行语句了,
最初总结:
连接器 :建设连贯,治理连贯、校验用户身份;
查问缓存 :查问语句如果命中查问缓存则间接返回,否则持续往下执行。MySQL 8.0 已删除该模块;
解析 SQL,通过解析器对 SQL 查问语句进行词法剖析、语法分析,而后构建语法树,不便后续模块读取表名、字段、语句类型;
执行 SQL:执行 SQL 共有三个阶段:
预处理阶段 :检查表或字段是否存在;将 select 中的 符号扩大为表上的所有列。
优化阶段 :基于查问老本的思考,抉择查问老本最小的执行打算;
执行阶段:依据执行打算执行 SQL 查问语句,从存储引擎读取记录,返回给客户端;
正文完