【MySQL】MySQL结构体系及核心组件功能是怎样的?
简要回答:
MySQL采用三层架构:连接层处理网络连接和认证;服务层包含SQL解析、优化器等核心功能;存储引擎层插件式支持InnoDB等引擎。其中InnoDB通过redo log 实现事务持久性,优化器负责选择最优执行计划。
1.MySQL整体架构
采用C/S架构,主要分三层。
1.连接层(Client Layer)
2.服务层(Server Layer)
3.存储引擎层(Storage Engine Layer)
2.核心组件功能:
2.1连接层:
- 连接池:管理客户端连接,复用连接资源。
- 身份验证:验证用户名/密码和主机权限。
- 线程处理:每个连接使用单线程处理。
2.2服务层(核心处理层):
- SQL接口:接收SQL命令,返回查询结果。
- 解析器:语法分析->生成解析数->语义检查。
- 查询优化器:指定执行计划(索引选择,JOIN顺序等)
- 缓存:缓存SELECT语句及其结果集(MySQL8.0已移除查询缓存)
2.3存储引擎层(插件式架构)
InnoDB:
- 支持事务(ACID)
- 行级锁
- 聚簇索引
- 默认引擎(MySQL5.5+)
MyISAM:
- 表级锁
- 非事务安全
- 全文索引
- 适合 读多写少场景
Memory:
- 内存存储
- 临时表默认引擎
2.4物理层文件:
.frm文件:存储表结构定义
.ibd文件:InnoDB数据文件
.MYD/.MYI:MyISAM数据文件/索引文件
重做日志(redo log):实现事务持久性
二进制日志(binlog):主从复制和数据恢复
3.流程实例(以SELECT查询为例)
1.连接管理:客户端通过TCP连接MySQL服务。
2.查询解析:解析器检查SQL语法并生成解析树。
3.优化处理:优化器选择使用索引A而非全表扫描。
4.引擎交互:InnoDB通过B+树索引定位。
5.结果返回:将数据通过连接层返回客户端。