MySQL整体架构

与所有服务端软件一样,MySQL采用的也是C/S架构,即客户端(Client)与服务端(Server)架构,我们在使用MySQL的时候,都是以客户端的身份,发送请求连接到运行服务端的MySQL守护进程,而MySQL服务器端则根据我们的请求进行处理并把处理后的结果返回给我们,这个过程可以简单地抽像成下面的示意图:

MySQL客户端服务端安装 mysql的客户端和服务端_客户端

客户端:

在安装后MySQL之后,在其安装目录的bin目录下,有一个mysql命令,这就是一般我们所说的MySQL客户端,不过这是MySQL官方提供的命令行客户端。一般我们工作中用的更多的是像Navicat这样的GUI客户端

服务端:

        MySQL服务端内部逻辑架构:

MySQL客户端服务端安装 mysql的客户端和服务端_MySQL_02

连接管理器

        客户端与服务端之间要建立联系,通过客户端登录信息到连接管理器,连接成功后,才可以对数据库进行操作

2、查询缓存,有的话直接返回结果:

        主要针对查询语句,进入的SQL语句,先到缓存中进行查找,是否有缓存,有的话,直接返回,没有的话,再往下走到解析器

3、解析器(词法与语法解析):

        针对进来的SQL语句进行语法词法分析,分析是否有问题,没有问题后,走到查询优化器

4、对查询进行优化:

        在查询优化器中,需对查询进行优化,例如查询时,查询的顺序不一样,会进行调整后,生成执行计划

5、生成执行计划后,到我们的执行器中

6、执行器调用API接口

        将对应的SQL语句往下走

7、API接口这边,调用底层存储引擎,获取结果,也会根据具体数据存储类型进行对应的查询(存储引擎一般常用的有三种Myisam、innoDB、memery)

8、根据存储引擎存储数据类型,存储引擎操作文件系统,获取对应的数据并返回

        返回至执行器时,一边将对于查询的SQL写入查询缓存中,方便下一次查询时直接调用返回,一边将结果返回至客户端