您好,欢迎来到宝玛科技网。
搜索
您的当前位置:首页关于 mysql 执行流程的解析

关于 mysql 执行流程的解析

来源:宝玛科技网


分析器

如果没有命中查询缓存,就要开始真正执行语句了。首先,MySQL 需要知道你要做什 么,因此需要对 SQL 语句做解析

分析器先会做“词法分析”。你输入的是由多个字符串和空格组成的一条 SQL 语句, MySQL 需要识别出里面的字符串分别是什么,代表什么

做完了这些识别以后,就要做“语法分析”。根据词法分析的结果,语法分析器会根据语法规则,判断你输入的这个 SQL 语句是否满足 MySQL 语法

优化器

经过了分析器,MySQL 就知道你要做什么了。在开始执行之前,还要先经过优化器的处 理。

优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联 (join)的时候,决定各个表的连接顺序

优化器阶段完成后,这个语句的执行方案就确定下来了,然后进入执行器阶段

执行器

开始执行的时候,要先判断一下你对这个表 T 有没有执行查询的权限,如果没有,就会返 回没有权限的错误

如果有权限,就打开表继续执行。打开表的时候,执行器就会根据表的引擎定义,去使用这个引擎提供的接口去执行

到这里server层就执行完毕 具体的引擎层逻辑我们下一篇文章进行分析

Copyright © 2019- baomayou.com 版权所有 赣ICP备2024042794号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务