MySQL体系结构分为四层
体系结构图如下:
(1)连接层
包含组件:
Connection Pool
-Connection Pool: 连接池组件
包含一些客户端的连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现类似于TCP/IP的通信,主要完成一些类似于连接处理,授权认证,及相关的安全方案,该层引入了线程池的概念,为通过认证安全接入的客户端提供线程,实现基于ssl的安全链接,服务器也会为安全接入的每个客户端验证它所具有的的操作权限
(2)服务层
包含组件:
Managment Service & Utilities
-Managment Service & Utilities:管理服务和工具组件(数据的备份和恢复,集群安全,系统恢复)
SQL Interface
-SQL Interface:SQL接口组件 (执行/封装DDL,DML,存储过程,存储函数,触发器,视图)
Parser
-Parser:查询分析组件,解析器 (解析客户端发送过来的请求)
Optimizer
-Optimizer:优化器组件
Caches & Buffers
-Caches & Buffers:缓冲器组件
完成大多少的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行,所有跨存储引擎的功能也在你这一层实现(过程,函数…), 服务器会解析查询 并创建响应的内部解析树,对其完成优化(确定表的查询顺序,是否利用索引,最后生成相应的执行操作,如果是select语句,服务器还会查询内部的缓存,如果缓存空间足够大,这样在解决大量的读操作的环境中能提供更好的系统性能)
(3)引擎层
包含组件:
Pluggable Storage Engines
-Pluggable Storage Engines:存储引擎
引擎层真正负责了MySQL中数据的存储和提取,服务器通过api和存储引擎进行通信
MySQL拥有插件式的存储引擎,将查询处理和其他的系统任务分离,得益于这种插件式的存储引擎可以根据业务需求和实质需要选择合适的存储引擎
(4)存储层
包含组件:
File Sysetem
-File Sysetem:文件系统,存储层
存储层负责将数据持久化存储在文件系统上,向上完成和数据引擎之间的交互