MySQL 5.0架构图

Mysql架构服务图 mysql服务结构_Mysql架构服务图

1. 连接层

最上层是一些客户端和连接服务,主要是完成一些类似与连接处理、授权认证及相关的安全方案。
在该层上引入连接池概念,为认证安全接入的客户端提供线程。
同样在该层上可以实现基于SSL的安全连接。服务端也会安全接入每个客户端验证它所具有的操作权限。

2. 服务层

第二层架构主要完成大多核心服务,如SQL接口,并完成缓存的查询,SQL的分析与优化,以及部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如过程、函数等。
在该层,服务器会解析查询并创建响应的内部解析树,并对其完成响应的优化,如确定查询表的顺序、是否利用索引等。最后生成相应的执行操作。

2.1 连接器

主要负责客户端与数据库服务的连接工作。

2.2 分析器

主要是通过词法分析SQL语句,告诉MySQL要做什么。

2.3 优化器

主要通过SQL语句,选择一种MySQL认为最优的执行方式。

2.4 执行器

通过操作存储引擎执行SQL语句,并将SQL语句执行的结果,返回给客户端。

2.5 查询缓存

在MySQL 5.0 中,如果是select语句,服务器会查询内部的缓存。在大量读操作的环境中,提高缓存空间大小可提高系统性能。
但是大多时候,数据库更新的操作比查询的操作更加频繁,所以查询缓存就有点鸡肋,仅适用于查询较为频繁的情况。在8.0中,该功能已不存在。

3. 引擎层

存储引擎层,存储引擎真正的负责了MySQL中数据的存储与提取,服务器通过API与存储引擎进行通讯。
不同的存储引擎具有的功能不同,擅长的领域也各不相同,而插件化的MySQL存储引擎架构让我们可以根据自己的需求选取存储引擎。

4. 存储层

数据存储层,主要是将数据存储在运行于裸设备的文件系统之上,并完成与存储引擎的交互。