0
点赞
收藏
分享

微信扫一扫

127-MySQL(一次SQL的完整处理流程)

琛彤麻麻 2022-05-02 阅读 38

一次SQL的完整处理流程

在这里插入图片描述
连接器:

  • mysql client和 mysql server进行通信的时候,当我们要进行一个请求的时候,作为mysql client,首先和服务器进行通信,里面有一个查询缓存,属于连接器的部分,MySQL server是网络服务器,控制连接的,走的是TCP 加密的ssl通信协议;
  • 客户端在登录的时候,要进行合法性的检查(验证mysql账号密码之类的是否正确,后续如果有SQL过来,如果是select的话优先访问查询缓存(两次同样的查询之间有更新操作,会清空缓存);

解析器:

  • 连接器到后边,就是所谓的解析器,解析SQL,生成解析树,验证SQL是否合法。

优化器:

  • 解析器完成以后就到优化器,根据解析完成的SQL生成相应的SQL执行计划以及当前SQL的索引的选择,确定好之后就到第五部;

执行器:

  • 第五步就是在执行器,调用存储引擎对外。

MySQL server从大的方向 相当于 可以划分成 3个模块:

  • mysql server
  • 插件式存储引擎,对外提供(就是对mysql server提供API接口)统一接口来访问磁盘的数据
  • 磁盘上的数据
    在这里插入图片描述

最后、mysql sever的执行器根据存储引擎的API接口进行数据的读写操作, 查询的话,将查 询的结果在查询缓存中缓存一份,将结果返回给客户端。
如果单纯的一次通信,客户端得到结果,会主动关闭连接。由连接器负责关闭这个连接,回收这个连接的资源。在这里插入图片描述

举报

相关推荐

0 条评论