文章目录

  • 前言
  • mysql大致架构
  • 各个组件的作用
  • 连接器
  • 查询缓存
  • 分析器
  • 优化器
  • 执行器
  • 总结


前言

这篇文章大致介绍下mysql的组成,和各个组成部分的基本作用,并不会做深入的讲解,只是基础的介绍,以便大家对mysql组成有个大致了解。

mysql大致架构

mysql基本包含以下几个部分,连接器,分析器,优化器,执行器,和存储引擎,其中连接器,分析器,优化器,执行器,又被称为server层,sql的语句就是再这个server层进行解析和处理的,最后调用存储引擎执行。下面是一张mysql的基本架构图。

mysql数据库中的程序可以是 mysql程序包含三种基本结构_mysql

各个组件的作用

首先是连接器,然后是其他,下面我们一个一个来分析。

连接器

和客户端建立链接用的,同时会对用户的账号密码进行验证,再验证通过之后,会读取用户的权限,之后的权限逻辑操作,全部是基于此时的权限进行的。

查询缓存

不建议使用,8.0之后已经被移出了,这个就是查询过数据之后,会有一个内存缓存,但是这个表一旦更新,整个缓存都会失效。缓存命中率较低,而且失效过快。

分析器

sql语句的分析就在这里,识别select这种关键字,然后把表名识别为表名,等等。将输入的sql语句进行识别和分析。语法错误也是在这里检测出来的。

优化器

这个是在分析器的基础之上,对sql语句进行优化。比如走哪个索引不走哪个索引,都是优化器决定的。我们常常遇到的索引失效,也都是优化器选择错误的原因,至于优化器为嘛会选择错误,和优化器的选择准则。我们之后的文章再讲。

执行器

根据优化器的优化结果,去访问存储引擎。通过存储引擎提供的接口,访问对应的表,执行相应的sql语句,拿到对应的结果集。

总结

以上就是mysql 的基本架构和各个组件,通过这个架构,我们可以大致了解mysql的语句执行过程大致是什么样子的。对于我们往后深入了解mysql,有很大的帮助。