十年八十个版本,架构变革的真相
MySQL 5.7 系列集中式架构下的“局部突围”2014–2023MySQL 5.7 虽然整体上仍是“一切以 ibdata1 为中心”但在其 40 余个版本中InnoDB 团队进行了多项前瞻性的模块化尝试为后续彻底重构埋下伏笔。3.1 关键版本演进版本日期InnoDB 里程碑意义5.7.42014-03-31共享临时表空间首次从 ibdata1 独立ibtmp1第一个从“大仓库”中剥离的模块5.7.52014-09-25引入innodb_buffer_pool_dump_pctBuffer Pool 预热粒度精细化5.7.62015-03-10支持 32KB/64KB 页大小Online DDL 重构为大型页和在线变更奠定基础5.7.82015-08-03只读事务优化跳过部分事务对象开销纯查询场景吞吐量提升5.7.112016-02-05引入innodb_tmpdirOnline DDL 临时目录可独立指定避免 DDL 填满系统 tmpdir5.7.142016-07-29innodb_io_capacity精细化控制默认 max 提升至 200000更好地适配 SSD5.7.182017-04-10InnoDB 表空间加密正式 GA满足合规要求5.7.212018-01-15并行读取能力初步优化为后续并行 DDL 预热5.7.222018-04-19Change Buffer 合并触发机制改进减少 I/O 峰值5.7.232018-07-27临时表空间最大尺寸可控防止 ibtmp1 无限膨胀5.7.442023-10-255.7 最终版10 月 31 日 EOL五年扩展支持结束3.2 重要演进解读临时表空间独立5.7.4这是 InnoDB 第一次将一类核心数据从 ibdata1 中移出。内部临时表和显式临时表存储于独立的 ibtmp1 文件可单独配置大小和位置避免临时数据污染系统表空间。Buffer Pool 预热精细化5.7.5在 5.6 时代Buffer Pool 转储/加载只有全量模式。5.7.5 引入innodb_buffer_pool_dump_pct默认 25允许仅转储最热的一部分页面大大缩短实例重启后的预热时间。I/O 能力控制增强5.7.14innodb_io_capacity默认值从 200 提升到 2000实际 5.7 早期默认 2005.7.14 后更强调参数的控制效果。innodb_io_capacity_max默认值直接提升至 200000匹配当代 SSD 的爆发放置能力。表空间加密5.7.18支持对独立表空间.ibd进行透明数据加密采用 Keyring 插件管理密钥。这使得 MySQL 能够满足 PCI-DSS、GDPR 等合规要求。Change Buffer 调度改进5.7.225.7.22 对 Change Buffer 的合并策略做了重要修正减少因合并操作导致的 I/O 突发使 I/O 负载更加平滑。临时表空间可控5.7.23通过innodb_temp_data_file_path可设置最大尺寸如ibtmp1:12M:autoextend:max:10G防止失控查询撑爆磁盘。3.3 5.7 时代的遗留痛点尽管 5.7 做出了诸多局部优化其根本性缺陷依然存在数据字典、Undo、Doublewrite 仍挤在 ibdata1空间只增不缩DDL 非原子性中途失败可能留下孤表或损坏的字典无独立 General Tablespaces用户只能在“每个表一个 .ibd”和“全部塞进 ibdata1”之间二选一。解决这些问题必须依靠下一代的架构重构——MySQL 8.0。四、MySQL 8.0 系列十年架构重构的主战场2016–2026MySQL 8.0 从 2016 年 9 月首个开发里程碑到 2026 年 5 月 EOL历时近十年发布了超过 40 个小版本。它完成了 InnoDB 历史上最彻底的一次底层重塑——从数据字典到 Undo、从 Redo Log 到 Doublewrite几乎每一个磁盘组件都被重新设计。4.1 开发里程碑与候选版8.0.0 – 8.0.4版本日期重大变革8.0.02016-09-12事务数据字典mysql.ibd首次引入原子 DDL 奠基8.0.12017-04-10自增主键持久化8.0.22017-07-27Undo 表空间默认独立innodb_undo_tablespaces28.0.32017-09-21Redo Log 无锁写入多线程并发写 Log Buffer8.0.42018-01-23默认内存临时表从 MEMORY 引擎变更为 TempTable 引擎解读事务数据字典8.0.0所有元数据表、列、索引等从.frm文件移入 InnoDB 的系统表中DDL 变为原子操作不再有“部分成功”状态。这是 8.0 最基础的重构。Undo 独立8.0.2虽然 5.7 已经支持独立 Undo 表空间但默认仍为 0。8.0.2 将默认值改为 2即安装后自动创建两个 Undo 表空间undo_001、undo_002Undo 从此彻底脱离 ibdata1。Redo Log 无锁写入8.0.3传统 Redo Log 写入需要竞争全局 mutex高并发下成为瓶颈。8.0.3 允许多个用户线程同时写入 Log Buffer极大提升了事务日志吞吐量。TempTable 引擎8.0.4新的内存临时表引擎支持变长字段VARCHAR/VARBINARY优于 MEMORY 引擎的固定长度存储减少内存浪费和磁盘落盘。4.2 正式 GAMySQL 8.0.112018-04-198.0.11 是 MySQL 8.0 的首个General AvailabilityGA版本标志着上述所有重构已可安全用于生产。自此8.0 系列进入长期支持阶段同时继续添加新特性。4.3 功能丰富与性能优化8.0.12 – 8.0.19版本日期关键特性8.0.132018-10-22TempTable 引擎支持 BLOB双写缓冲区参数精细化8.0.142019-01-21SQL 级动态管理 Undo 表空间CREATE UNDO TABLESPACE8.0.152019-02-01死锁检测可在线关闭innodb_deadlock_detect8.0.162019-04-25系统表空间mysql.ibd加密innodb_dedicated_server自动适配内存8.0.172019-07-22多线程 Page Cleaner 调度优化8.0.192020-01-13InnoDB ReplicaSet 正式 GA解读动态 Undo 管理8.0.14DBA 可以随时CREATE UNDO TABLESPACE添加新的 Undo 表空间或ALTER UNDO TABLESPACE ... SET INACTIVE再DROP配合在线截断功能彻底解决了 Undo 空间回收难题。死锁检测可控8.0.15在高并发系统中死锁检测本身可能消耗大量 CPU。设置innodb_deadlock_detectOFF后依赖innodb_lock_wait_timeout超时机制可提升吞吐量。系统表空间加密8.0.16此前只能加密用户表空间现在连数据字典所在的mysql.ibd也可加密实现了全实例加密。4.4 核心组件独立高峰8.0.20 – 8.0.27版本日期里程碑事件8.0.202020-04-27Doublewrite Buffer 从 ibdata1 独立到#ib_16384_0.dblwr文件8.0.222020-10-19Instant DDL 支持ADD COLUMN8.0.232021-01-18全文本索引性能优化8.0.272021-10-19并行 DDLinnodb_ddl_threads4解读Doublewrite 独立8.0.20这是极其关键的一步。双写缓冲区长久以来固定在 ibdata1 开头与系统表空间耦合。8.0.20 将其迁出成为独立的双写文件每个 Buffer Pool 实例对应两个文件。这降低了写延迟也为后续使用 Atomic I/O 彻底替代 Doublewrite 铺平了道路。Instant DDL ADD COLUMN8.0.22当在表末尾添加列时不再需要重建表和数据只需修改数据字典中的表定义。对于超大表TB 级此操作从小时级降至毫秒级。并行 DDL8.0.27创建或重建二级索引时可使用多个线程并行排序和构建。这是 DDL 性能的里程碑——索引创建时间与 CPU 核心数近似成反比极大缩短了大表维护窗口。4.5 后期收敛与维护8.0.30 – 8.0.41版本日期变化8.0.302022-07-26Redo Log 容量管理简化innodb_redo_log_capacity8.0.322023-01-17Instant DDL 支持DROP COLUMN8.0.362024-01-16锁系统性能稳定性加强8.0.412025-01-218.0 系列后期版本安全修复为主解读Redo Log 简化8.0.30过去需要同时配置innodb_log_file_size和innodb_log_files_in_group易出错。8.0.30 引入innodb_redo_log_capacity默认 100M自动管理文件数量和大小。Instant DROP COLUMN8.0.32扩展 Instant DDL 能力删除列也可瞬间完成。生命周期终点MySQL 8.0 于2026 年 5 月 1 日正式结束扩展支持所有用户被强烈建议升级至 8.4 LTS 或 9.7 LTS。五、MySQL 8.4 LTS双轨制下的“稳定基座”20242024 年 4 月 30 日Oracle 发布了MySQL 8.4.0 LTS这是新双轨制LTS Innovation下的第一个长期支持版本。8.4 LTS 并未引入大量新特性其核心任务是稳定化8.0 系列的所有架构成果事务数据字典、独立 Undo、原子 DDL、并行 DDL 等调整默认值以适配现代硬件和最佳实践例如innodb_change_buffering默认值从all改为noneNVMe SSD 下合并收益变小mysql_native_password默认禁用Buffer Pool 实例数量自动随 CPU 核数调整。为 Innovation 版本铺路8.4 作为长期支持版本的基准使得后续 9.0 创新版可以更大胆地试验新功能。对于大多数生产环境8.4 LTS 是比 8.0 更可靠的升级目标也是最终走向 9.7 LTS 的必要跳板。六、MySQL 9.x Innovation 系列为 LTS 做实战打磨2024–2026从 2024 年 7 月开始MySQL 进入 Innovation 快速迭代期。9.0、9.1、9.2 …… 9.6 每季度发布一个新版本每个版本都包含若干 InnoDB 层面的优化。这些优化在 9.7 LTS 中被统一集成。6.1 创新版关键 InnoDB 改进汇总版本范围引入的优化说明9.0 – 9.1Buffer Pool 持久化增强定期将热页列表保存至磁盘重启后加载消除冷启动预热9.2 – 9.3Change Buffer 分时限流合并将集中式合并改为分散在时间窗口平滑 I/O 波动9.4Log Buffer 在线调整innodb_log_buffer_size支持SET GLOBAL无需重启9.5Undo Buffer 独立拆分Redo 与 Undo 的刷盘路径解耦MVCC 场景更可控9.6Atomic I/O 实验性支持对 NVMe SSD 启用原子写入可绕过 Doublewrite Buffer6.2 重要特性详解Buffer Pool 持久化9.0虽然 5.6/5.7/8.0 已支持innodb_buffer_pool_dump_now但需要手动触发。9.0 引入自动后台 dump默认每 10 秒检查变化并将热页列表以更紧凑的格式存储。实例重启后加载速度比旧方式快数倍适合云环境频繁弹性伸缩的场景。LRU 多级淘汰9.2传统的 LRU 采用“中点插入”策略但面对扫描密集型负载仍可能污染缓存。9.2 引入了三级热度区分低热度页优先淘汰中热度页次之高热度页尽量保留。这使得热点数据在缓存中停留时间更长。Change Buffer 分时限流9.3此前 Change Buffer 的合并由一个后台线程周期性全量触发容易产生 I/O 尖峰。9.3 改为分布式调度将合并任务拆分成小批次均匀分配到秒级时间窗口内写 I/O 负载更加平滑对 SSD 寿命也更友好。Atomic I/O 试验9.6现代 NVMe SSD 支持“原子域”Atomic Write Unit例如保证 16KB 写入的完整性。9.6 开始InnoDB 能够检测此类设备并自动将数据页直接写入数据文件无需先写 Doublewrite Buffer。这消除了双写带来的写放大提升写密集型负载性能。此功能在 9.7 LTS 中得到正式支持和默认启用。七、MySQL 9.7 LTS十年演进的集大成者20262026 年 4 月 21 日MySQL 9.7.0 LTS发布。它吸收了 8.4 LTS 的稳定性、9.x Innovation 的所有优化并最终完成了 InnoDB 模块化与硬件自适应架构的完整落地。7.1 内存架构的最终形态组件9.7 LTS 最终特性Buffer Pool细粒度锁 持久化热页 三级 LRU 多实例在线调整对业务影响极小Change Buffer默认关闭none但可按需开启并支持分时限流合并Log Buffer默认 64MB支持在线调整Undo Buffer 独立刷盘AHI分区锁默认 8 分区可在线修改支持单表开关多级淘汰策略7.2 磁盘架构的最终形态组件9.7 LTS 最终特性数据字典独立 Data Dictionary Tablespacemysql.ibd不再依赖 ibd

相关新闻

互信息链式法则的证明(P124302005陈政煜)

互信息链式法则的证明(P124302005陈政煜)

引言互信息链式法则刻画联合随机变量组与目标变量间的总互信息,可按观测顺序分解为逐变量增量条件互信息之和,是信息论中信息累积、多源信息分解的核心恒等式。前提定义与公式二元标准形式设离散随机变量 X1,X2,Y,联合互信息满足:…

2026/6/28 2:33:14阅读更多 →
OpenCVSharp:使用MOG进行运动物体识别

OpenCVSharp:使用MOG进行运动物体识别

目录 效果 实现 效果 动态效果: 实现 运动物体检测是计算机视觉中的一个重要应用,广泛应用于安防监控、交通分析、人机交互等领域。本文将详细介绍如何使用OpenCVSharp中的MOG(Mixture of Gaussians)算法实现运动物体检测&…

2026/6/28 2:28:14阅读更多 →
Flink 运行模式

Flink 运行模式

1.Standalone 运行模式 独立模式是独立运行的,不依赖任何外部的资源管理平台;当然独立也是有代价的:如果资源不足,或者出现故障, 没有启动扩展或重分配资源的保证,必须手动处理。所以独立模式一般只用在开发测试或作业…

2026/6/28 2:28:14阅读更多 →
【Ambari Plus】Step8—MariaDB 初始化

【Ambari Plus】Step8—MariaDB 初始化

Step8—MariaDB 初始化 Ambari Server 后面会把元数据写入 MariaDB,所以数据库要提前准备好。这一步只处理 MariaDB 服务本身:安装、字符集、监听地址、root 密码和远程连通验证。Ambari 专用库和专用用户放到 Step9 再创建。 本文只在核心节点 hadoop1.…

2026/6/28 4:08:18阅读更多 →
别急着教 Agent 思考,先喂它吃口干净的:ETL 入门

别急着教 Agent 思考,先喂它吃口干净的:ETL 入门

别急着教 Agent 思考,先喂它吃口干净的:ETL 入门 摘要:很多人一上来就盯着 Agent 的规划、决策、反思,却把更底下那层忘了:数据到底干不干净。ETL 在 Agent 时代一点都不过时,反而更要命。传统程序吃到脏数…

2026/6/28 4:08:18阅读更多 →
熬夜压力大白发越来越多?科学解析与营养干预指南

熬夜压力大白发越来越多?科学解析与营养干预指南

熬夜压力大白发越来越多?这是很多当代成年人都会遇到的头发问题,从临床营养角度来看,这种现象确实和长期的不良生活状态直接相关,大多是毛囊核心营养缺口导致黑色素合成不足引发的,通过科学的营养补充可以有效干预改善…

2026/6/28 4:08:18阅读更多 →
【网络安全】svn信息泄漏

【网络安全】svn信息泄漏

一、svn介绍SVN,全称为 Subversion,是一个开源的集中式版本控制系统(CVCS)。在 Git 彻底统治开源界之前,SVN 曾是软件开发团队进行代码管理和协同开发的绝对主流工具。结合你正在使用 dvcs-ripper 进行安全测试的背景&…

2026/6/28 4:08:18阅读更多 →
不定积分不是导数逆向计算,是沿着螺旋轨迹反向累加全部无穷小微观生长单元,还原完整宏观脉络-《全域数学vs传统数学:人类文明进阶200讲》第53讲 高中通俗版逐字稿

不定积分不是导数逆向计算,是沿着螺旋轨迹反向累加全部无穷小微观生长单元,还原完整宏观脉络-《全域数学vs传统数学:人类文明进阶200讲》第53讲 高中通俗版逐字稿

《全域数学vs传统数学:人类文明进阶200讲》第53讲 高中通俗版逐字稿 讲次: 第53讲 主题: 不定积分不是导数逆向计算,是沿着螺旋轨迹反向累加全部无穷小微观生长单元,还原完整宏观脉络 对标课本知识点: 不…

2026/6/28 4:08:18阅读更多 →
湖北香樟好不好?踩过死苗返工坑,5年采购商总结5条避坑干货

湖北香樟好不好?踩过死苗返工坑,5年采购商总结5条避坑干货

做苗木采购5年,被问得最多的问题之一就是“湖北香樟好不好”。说实话,作为长江流域原生的乡土树种,湖北香樟本身冠幅饱满、气候适配性强,正常移栽成活率能到90%以上,是市政、地产项目的稳妥选择。 但我前前后后踩过的香…

2026/6/28 4:03:18阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/28 0:08:01阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/28 0:08:01阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/28 0:08:01阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/28 0:08:01阅读更多 →