InnoDB 架构图 MySQL 5.7FROMhttps://dev.mysql.com/doc/refman/5.7/en/innodb-architecture.htmlInnoDB 架构图 MySQL 9.7FROMhttps://dev.mysql.com/doc/refman/9.7/en/innodb-architecture.html2026 年 4 月 21 日MySQL 9.7.0 LTS 发布成为新的长期支持版本【Long-Term Support (LTS) 版本线】。2. Change BufferChange Buffer早期版本叫 Insert Buffer在 InnoDB 架构中既有内存部分也有磁盘部分。对比项MySQL 5.7MySQL 9.7支持索引类型仅非唯一二级索引二级索引 全文索引 空间索引innodb_change_buffering 默认值allnone合并调度机制集中合并易出现 IO 峰值分时限流合并IO 波动平缓3. Log Buffer对比项MySQL 5.7MySQL 9.7默认内存大小16MB64MB参数修改方式只读必须重启生效支持 SET GLOBAL 在线动态调整刷盘与缓存架构固定刷盘策略redo/undo 耦合自适应刷盘undo buffer 独立拆分4. Adaptive Hash Index (AHI)对比项MySQL 5.7MySQL 9.7锁机制全局单一锁分区细粒度锁默认分区数量864分区数修改权限只读无法在线修改支持在线动态调整索引管控粒度全局统一开关支持单表单独开启 / 关闭缓存淘汰策略基础热度判定综合访问频率 最近访问时间的淘汰策略先踢低热度 → 再踢中热度 → 尽量保留高热度MySQL 5.7 磁盘结构所有核心元数据都塞在系统表空间 ibdata1导致空间不可回收、耦合度高。MySQL 9.7 磁盘结构模块化拆分数据字典、Undo、临时表空间独立新增 General Tablespaces。对每一类简要做一个对比组件MySQL 5.7MySQL 9.7数据字典DD在 ibdata1 .ibd 文件双份元数据二边同步维护代价高独立 Data Dictionary Tablespace.ibd 不再存字典Undo默认在 ibdata1空间不可收缩独立 Undo Tablespaces支持多个文件在线收缩临时表空间单文件性能差多文件 InnoDB 临时表空间支持事务和索引DoubleWrite Buffer必需位于 ibdata1Atomic I/O 替代适配 NVMeGeneral Tablespaces不支持新增支持多表共享