一、MySQL整体框架

MySQL 整体架构:三层 + 一层存储,清晰明了 MySQL 最精髓的设计就是:分层架构 + 插件式存储引擎
MySQL 的核心设计是 分层、插件式 的,这意味着各组件之间解耦良好,尤其是存储引擎层,可以像更换汽车发动机一样被替换。
整体分为4大部分:

  • 连接层
  • 服务层(Server 层)
  • 存储引擎层
  • 物理存储层(文件系统)
    在这里插入图片描述

第一层:连接层

负责接收客户端请求、身份认证、安全控制。

  • 默认端口:3306
  • 模型:单进程多线程(mysqld)
  • 每一个连接,对应一个线程(或线程池)
  • 认证:用户名、密码、host权限校验
  • 安全:支持 SSL/TLS 加密

💡提示这一层只管 “谁能连、怎么连”,不处理 SQL。

第二层:服务层(MySQL 的大脑)

所有存储引擎共用这一层,也是 SQL 真正执行的地方。
① SQL Interface(SQL 接口)

  • 接收 SQL:SELECT/INSERT/UPDATE/DELETE/CALL返回结果给客户端。

② Parser(解析器)

  • 词法分析:拆关键词、表名、字段、条件
  • 语法分析:检查 SQL 语法是否合法
  • 生成:解析树

③ Optimizer(查询优化器)
MySQL 最复杂组件之一,基于 CBO 成本模型。 决定:

  • 用不用索引、用哪个索引
  • 多表 JOIN 顺序
  • 子查询如何优化
  • 选择成本最低的执行计划

④ Caches & Buffers(缓存)

  • 查询缓存:MySQL 5.7 弃用,8.0 直接删除
  • 原因:表一更新,缓存全失效,高并发下反而拖慢性能
  • 保留:表缓存、权限缓存等

第三层:存储引擎层

MySQL 最灵活的一层:引擎可插拔替换。
① InnoDB(默认,生产必选)

  • 支持事务 ACID
  • 行级锁 + MVCC
  • 外键、崩溃恢复
  • 聚簇索引(主键查询极快)
  • WAL + Redo Log 保证数据安全
    ② MyISAM(老引擎,逐步淘汰)
  • 不支持事务
  • 表级锁,并发差
  • 崩溃恢复弱
  • 适合:读多写少、非核心业务
    ③ Memory(内存引擎)
  • 数据全放内存,速度极快
  • 重启丢失
  • 适合:临时表、缓存
    ④ Archive / CSV / Blackhole
  • 用于归档、数据交换、主从中转等特殊场景。
  • 服务层 ↔ 存储引擎:通过 Handler API
    交互。

第四层:物理存储层(磁盘文件)

所有数据最终落在文件系统里。
重要日志

  • binlog:Server 层日志,用于主从、恢复
  • redo log:InnoDB 崩溃恢复
  • undo log:回滚 +
    MVCC
    重要数据文件
  • InnoDB:ibdata1、.ibd
  • MyISAM:.frm、.MYD、.MYI

二、InnoDB 物理存储结构

在这里插入图片描述

1、InnoDB 表空间

① 系统表空间ibdata1

  • 数据字典
  • 双写缓冲区
  • 变更缓冲区
  • undo 等系统数据

② 独立表空间 .ibd(默认开启)

  • 一张表一个 .ibd
  • 存数据 + 索引
  • 方便备份、迁移、空间回收

③ 通用表空间

  • 多表共用,可自定义路径。

④ 临时表空间

  • ibtmp1临时表使用,重启重建。

2、InnoDB 核心日志

① Redo Log(崩溃恢复)

  • ib_logfile0 / ib_logfile1
  • 循环写、顺序 I/O 极快
  • WAL 机制:先写日志,再刷数据页
  • 数据库崩溃,重启自动恢复

② Undo Log(回滚 + MVCC)

  • 记录数据旧版本
  • 事务回滚
  • 实现无锁读

3、InnoDB 内部组织结构

.ibd文件内部是四级结构:
== 段 → 区 → 页 → 行 ==

  • 段:索引叶子节点、非叶子节点
  • 区:1MB,连续 64 个页
  • 页:默认 16KB,InnoDB 最小 I/O 单元
  • 行:真实记录,支持多种行格式

行格式(MySQL 5.7+ 默认 DYNAMIC):

  • COMPACT
  • DYNAMIC
  • COMPRESSED
  • REDUNDANT

三、MySQL存储引擎详细对比表

存储引擎对比表
在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐