Mysql基础架构

121 阅读1分钟

mysql 基础架构

如上图就是mysql的基础架构,我们以一条查询sql举例来详细解读各模块的作用。
可以看到mysql也是分层架构的, server层是mysql 提供的统一业务处理,存储引擎则以插件形式插入使用。

  • 连接器:管理连接,身份认证。客户端需要和mysql的服务端建立连接,就是我们平常使用的mysql -h -P -u -p来连接服务端。用户名密码认证通过,连接器会到权限表里面查出拥有的权限。
  • 查询缓存:查询缓存模块会对整个sql语句的结果做一个缓存。可以看到我图中是用灰色部分标识的主要原因就是性价比不高,不建议设置。(只要表中有一行记录被更新,mysql会清空整个查询缓存,8.0版本以后,mysql已经取消来查询缓存模块)
  • 分析器:词法解析,语法解析。生成解析树和校验语法是否正确,表、列是否存在等。
  • 优化器:选取执行的索引,生成执行计划。说明explain语句的结果就是这里生成的。
  • 执行器:使用引擎提供的接口,获取满足条件的记录,将结果集返回给客户端。
  • 存储引擎:存储数据,提供读写接口。

参考资料\