文章目录
- 前言
- mysql大致架构
- 各个组件的作用
- 连接器
- 查询缓存
- 分析器
- 优化器
- 执行器
- 总结
前言
这篇文章大致介绍下mysql的组成,和各个组成部分的基本作用,并不会做深入的讲解,只是基础的介绍,以便大家对mysql组成有个大致了解。
mysql大致架构
mysql基本包含以下几个部分,连接器,分析器,优化器,执行器,和存储引擎,其中连接器,分析器,优化器,执行器,又被称为server层,sql的语句就是再这个server层进行解析和处理的,最后调用存储引擎执行。下面是一张mysql的基本架构图。
各个组件的作用
首先是连接器,然后是其他,下面我们一个一个来分析。
连接器
和客户端建立链接用的,同时会对用户的账号密码进行验证,再验证通过之后,会读取用户的权限,之后的权限逻辑操作,全部是基于此时的权限进行的。
查询缓存
不建议使用,8.0之后已经被移出了,这个就是查询过数据之后,会有一个内存缓存,但是这个表一旦更新,整个缓存都会失效。缓存命中率较低,而且失效过快。
分析器
sql语句的分析就在这里,识别select这种关键字,然后把表名识别为表名,等等。将输入的sql语句进行识别和分析。语法错误也是在这里检测出来的。
优化器
这个是在分析器的基础之上,对sql语句进行优化。比如走哪个索引不走哪个索引,都是优化器决定的。我们常常遇到的索引失效,也都是优化器选择错误的原因,至于优化器为嘛会选择错误,和优化器的选择准则。我们之后的文章再讲。
执行器
根据优化器的优化结果,去访问存储引擎。通过存储引擎提供的接口,访问对应的表,执行相应的sql语句,拿到对应的结果集。
总结
以上就是mysql 的基本架构和各个组件,通过这个架构,我们可以大致了解mysql的语句执行过程大致是什么样子的。对于我们往后深入了解mysql,有很大的帮助。