| 客户端层 |
连接管理与安全性 |
处理客户端连接请求,进行用户认证和权限检查。 |
| |
连接池 |
管理和复用客户端连接,提高连接效率。 |
| SQL 层 |
解析器(Parser) |
解析 SQL 语句,生成解析树。 |
| |
查询优化器(Optimizer) |
确定执行查询的最优路径,选择最佳的访问数据方式。 |
| |
执行器(Executor) |
根据解析和优化的结果执行 SQL 操作。 |
| 存储引擎层 |
存储引擎接口 |
提供统一接口支持多种存储引擎。 |
| |
InnoDB |
默认事务性存储引擎,支持 ACID 特性和外键。 |
| |
MyISAM |
非事务性存储引擎,适合读操作多的应用。 |
| |
其他存储引擎 |
如 MEMORY 、CSV 、ARCHIVE 等,提供特定用途的存储功能。 |
| 存储层 |
文件系统 |
数据存储在文件系统中,格式由存储引擎决定。 |
| |
数据文件和日志文件 |
管理表数据、索引和事务日志文件。 |
| 插件层 |
插件接口 |
支持多种插件,如认证插件、全文搜索插件,增强灵活性和可扩展性。 |
| 缓存与缓冲区 |
查询缓存 |
缓存 SELECT 查询结果,提高重复查询效率。 |
| |
缓冲池 |
缓存数据页和索引页,特别是 InnoDB 的缓冲池,减少磁盘 I/O 。 |
| 日志系统 |
错误日志 |
记录服务器启动、关闭和运行时的错误信息。 |
| |
通用查询日志 |
记录所有客户端连接和 SQL 语句。 |
| |
慢查询日志 |
记录执行时间超过特定阈值的查询,帮助识别性能瓶颈。 |
| |
二进制日志 |
记录所有更改数据的语句,用于复制和数据恢复。 |
| 复制与集群 |
复制 |
主从复制机制,支持数据冗余和负载均衡。 |
| |
集群 |
MySQL Cluster 提供高可用性和高冗余的分布式数据库解决方案。 |