乐趣区

关于mysql:mysql学习

连接器
简略总结一下:
与客户端进行 TCP 三次握手建设连贯;
校验客户端的用户名和明码,如果用户名或明码不对,则会报错;
如果用户名和明码都对了,会读取该用户的权限,而后前面的权限逻辑判断都基于此时读取到的权限

解析器
词法剖析,语法分析

执行 SQL
每条 SELECT 查问语句流程次要能够分为上面这三个阶段:
prepare 阶段,也就是预处理阶段;
optimize 阶段,也就是优化阶段;
execute 阶段,也就是执行阶段;

预处理器

  • 优化器
    通过预处理阶段后,还须要为 SQL 查问语句先制订一个执行打算,这个工作交由「优化器」来实现的。
    优化器次要负责将 SQL 查问语句的执行计划确定下来

    要想晓得优化器抉择了哪个索引,咱们能够在查问语句最后面加个 explain 命令,这样就会输入这条 SQL 语句的执行打算

  • 笼罩索引

执行器
经验完优化器后,就确定了执行计划,接下来 MySQL 就真正开始执行语句了,


最初总结:
连接器 :建设连贯,治理连贯、校验用户身份;
查问缓存 :查问语句如果命中查问缓存则间接返回,否则持续往下执行。MySQL 8.0 已删除该模块;
解析 SQL,通过解析器对 SQL 查问语句进行词法剖析、语法分析,而后构建语法树,不便后续模块读取表名、字段、语句类型;
执行 SQL:执行 SQL 共有三个阶段:
预处理阶段 :检查表或字段是否存在;将 select 中的 符号扩大为表上的所有列。
优化阶段 :基于查问老本的思考,抉择查问老本最小的执行打算;
执行阶段:依据执行打算执行 SQL 查问语句,从存储引擎读取记录,返回给客户端;

退出移动版