1.体系结构详解
1.1 第一层:网络连接层
1.一些客户端和链接服务,包含本地 Socket 通信和大多数基于客户端/服务端工具实现的 TCP/IP 通信,主要完成一些类似于连接处理、授权认证、及相关的安全方案
2.在该层上引入了**连接池** Connection Pool 的概念,管理缓冲用户连接,线程处理等需要缓存的需求
3.在该层上实现基于 SSL 的安全链接,服务器也会为安全接入的每个客户端验证它所具有的操作权限
1.2 第二层:核心服务层
1.查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,所有的内置函数(日期、数学、加密函数等)
Management Serveices & Utilities:系统管理和控制工具,备份、安全、复制、集群等
SQL Interface:接受用户的 SQL 命令,并且返回用户需要查询的结果
Parser:SQL 语句分析器
Optimizer:查询优化器
Caches & Buffers:查询缓存,服务器会查询内部的缓存,如果缓存空间足够大,可以在大量读操作的环境中提升系统性能
2.所有跨存储引擎的功能在这一层实现,如存储过程、触发器、视图等
3.在该层服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定表的查询顺序,是否利用索引等, 最后生成相应的执行操作
4.MySQL 中服务器层不管理事务,事务是由存储引擎实现的
1.3 第三层:存储引擎层
1.Pluggable Storage Engines:存储引擎接口,MySQL 区别于其他数据库的重要特点就是其存储引擎的架构模式是插件式的(存储引擎是基于表的,而不是数据库)
2.存储引擎**真正的负责了 MySQL 中数据的存储和提取**,服务器通过 API 和存储引擎进行通信
3.不同的存储引擎具有不同的功能,共用一个 Server 层,可以根据开发的需要,来选取合适的存储引擎
1.4 第四层:系统文件层
1.数据存储层,主要是将数据存储在文件系统之上,并完成与存储引擎的交互
2.File System:文件系统,保存配置文件、数据文件、日志文件、错误文件、二进制文件等