一次SQL的完整处理流程
连接器:
- mysql client和 mysql server进行通信的时候,当我们要进行一个请求的时候,作为mysql client,首先和服务器进行通信,里面有一个查询缓存,属于连接器的部分,MySQL server是网络服务器,控制连接的,走的是TCP 加密的ssl通信协议;
- 客户端在登录的时候,要进行合法性的检查(验证mysql账号密码之类的是否正确,后续如果有SQL过来,如果是select的话优先访问查询缓存(两次同样的查询之间有更新操作,会清空缓存);
解析器:
- 连接器到后边,就是所谓的解析器,解析SQL,生成解析树,验证SQL是否合法。
优化器:
- 解析器完成以后就到优化器,根据解析完成的SQL生成相应的SQL执行计划以及当前SQL的索引的选择,确定好之后就到第五部;
执行器:
- 第五步就是在执行器,调用存储引擎对外。
MySQL server从大的方向 相当于 可以划分成 3个模块:
- mysql server