马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?站点注册
×
各位坛友,经常会看到有人问"MySQL 到底有几个版本""5.7 和 8.0 差距大吗""Innovation 版和 LTS 版什么区别""为什么没有 MySQL 6 和 7"。今天花了大量时间扒了一遍 Oracle 官方 MySQL 博客、MySQL 官方文档和多个可信技术资料,把 MySQL 从 1995 年到现在的主要版本、发布日期、关键特性和所有权变迁都整理了出来。尽量做到每一条都有依据,有错漏直接指出。 MySQL 三十年历史大致可以分成五个阶段:UNIREG 前史 → 早期开源期 → 存储引擎成型期 → 企业级成熟期 → LTS/Innovation 双轨期。下面按时间线一个一个捋清楚。 关于命名由来:MySQL 由创始人 Michael "Monty" Widenius 以他的大女儿 My Widenius 命名。后来 Monty 的分支项目 MariaDB 以他的小孙女 Maria 命名。Monty 还有一个儿子叫 Max,曾与 SAP 合作的数据库命名为 MaxDB。MySQL 的海豚标志名叫 Sakila,由乌干达开发者 Ambrose Twebaze 在"海豚命名"竞赛中提出。
关于所有权变迁:MySQL 经历了三次易主——MySQL AB(1999)→ Sun Microsystems(2008)→ Oracle(2010 至今)。每次易手都对 MySQL 的发展方向产生了深远影响。
一、UNIREG 前史(1979 - 1995)MySQL 的技术基因可以追溯到 1979 年。 UNIREG(1979 年)Monty Widenius 为瑞典 TcX 公司用 BASIC 设计了一个报表工具,运行在 4MHz 主频、16KB 内存的 ABC800 计算机上。后来用 C 语言重写并移植到 Unix,命名为 UNIREG——一个低层级的、面向报表的存储引擎。UNIREG 不支持 SQL,没有事务,只有表级锁,但它奠定了 MySQL 存储引擎架构的底层基础。 mSQL 合作失败(1990 年)TcX 的客户要求为 UNIREG 提供 SQL 接口。Monty 找到 mSQL 的发明人 David Hughes 商谈合作,想把 mSQL 的 SQL 层集成到自己的存储引擎中。但测试后发现 mSQL 的性能无法满足需求,Monty 决心自己重写 SQL 层——MySQL 从此开始萌芽。 MySQL 创立(1995 年)Monty Widenius、David Axmark 和 Allan Larsson 三人正式创立 MySQL AB 公司(雏形)。1995 年 5 月,MySQL 首个内部版本诞生。但此版本功能极其有限,仅供内部使用,未对外发布。
二、早期开源期(1996 - 2001)这个阶段 MySQL 从内部工具变为公开可用的开源数据库,逐步建立了用户基础。 MySQL 3.11.1(1996.10)MySQL 首个公开发布的版本,直接跳过了 2.x 版本号。最初仅提供 Solaris 平台的二进制版本。1996 年 11 月 Linux 二进制包发布,12 月源代码分发发布。此时 MySQL 非常简陋,除了基本的 INSERT、UPDATE、DELETE 和 SELECT 操作外,几乎没有其他功能——不支持事务、子查询、外键、存储过程和视图,仅存在表级锁。但它速度快、稳定、免费,逐步吸引了早期 Web 开发者。 MySQL 3.20(1997.01 beta)3.20 系列的首个 beta 版本于 1997 年 1 月发布。1997 年 12 月,社区发布了 PHP 的第一个 MySQL 驱动——此后 PHP + MySQL 成为 Web 开发的经典组合(即所谓 LAMP 架构的核心)。 MySQL 3.22(1998 年)一个标志性的版本,提供了基本的 SQL 支持和一个比较复杂的查询优化器,速度很快且稳定。但仍然不支持事务、子查询、外键、存储过程和视图,仅存在表级锁。1998 年 1 月,MySQL 首次发布 Windows 平台版本。1998 年 12 月,MySQL 首次被纳入 Linux 发行版(SUSE Linux 6.0)。 MySQL 3.23(1999.07 alpha → 2001.01 production)MySQL 历史上最重要的早期版本之一。1999 年 7 月发布 alpha 版,2000 年 6 月发布 beta 版并将许可证从 MySQL Free Public License 改为 GPL(GNU General Public License),正式进入开源世界。2001 年初 3.23.31 被标记为"production ready"。 关键变化: 集成 Berkeley DB 存储引擎:与 Sleepycat 公司合作,首次为 MySQL 带来事务支持,补上了最大短板。在集成过程中对源码进行改造,为后续可插拔式存储引擎架构奠定了基础 MyISAM 存储引擎:2000 年,旧 ISAM 引擎被重写为 MyISAM,支持全文搜索 master/slave 复制:2000 年 4 月在 Slashdot 支持下加入主从复制机制 查询优化器改进
1999 年 MySQL AB 公司正式成立,MySQL 从个人项目转变为团队开发。
三、存储引擎成型期(2002 - 2010)这个阶段 MySQL 引入了最重要的 InnoDB 存储引擎,并经历了两次所有权变更,从创业公司变为 Oracle 旗下产品。 MySQL 4.0(2003.03 GA)里程碑版本。正式集成 InnoDB 存储引擎(由芬兰 Innobase 公司的 Heikki Tuuri 开发),支持事务、外键、行级锁,适用于 OLTP 高并发场景。InnoDB 的加入彻底改变了 MySQL"不支持事务"的刻板印象。还引入了查询缓存(Query Cache)、SSL 加密协议、预处理语句支持。 关键事件:2005 年 10 月,Oracle 收购 Innobase 公司。此举让 MySQL 社区感到不安——MySQL 最核心的存储引擎现在掌握在竞争对手手中。这也直接推动了 Monty Widenius 后来创建 MariaDB。
MySQL 4.1(2004.10 GA)引入子查询(Subquery)支持、预处理语句(Prepared Statements)、新的字符集和校对规则(支持 Unicode)、基于行的复制改进。密码加密方式从旧的 MySQL 323 升级为更安全的 SHA1。 MySQL 5.0(2005.10 GA)MySQL 从"轻量数据库"向"企业级数据库"转型的关键版本。引入大量此前缺失的企业级特性: 首个 GA 版本为 5.0.3(2005 年 10 月)。最终版本为 5.0.96(2013 年 2 月)。EOL 于 2013 年 12 月。 MySQL 5.1(2008.11.14 GA)首个 GA 版本 5.1.30。关键变化: 分区表(Partitioning):支持 RANGE、LIST、HASH、KEY 四种分区类型 事件调度器(Event Scheduler):定时任务 基于行的复制(Row-Based Replication):替代此前的语句级复制,更安全 可插拔存储引擎架构正式成熟 MySQL Cluster NDB 6.x 独立发展
关键事件:2008 年 1 月,Sun Microsystems 以约 10 亿美元收购 MySQL AB。2009 年 4 月,Oracle 以约 74 亿美元收购 Sun。MySQL 从此归入 Oracle 旗下,社区对此交易充满疑虑。Monty Widenius 离开 Oracle,发起"Save MySQL"运动,并随后创建了 MariaDB 分支。
MySQL 5.5(2010.12.03 GA)首个 GA 版本 5.5.8。InnoDB 正式成为 MySQL 默认存储引擎(此前默认为 MyISAM)。这一改变意义重大——所有新建表默认获得事务、行级锁、外键支持。其他重要特性: 半同步复制(Semi-Synchronous Replication) utf8mb4 字符集:可存储四字节字符(如 emoji 表情),解决了一直以来 utf8 只支持三字节的痛点 元数据锁(Metadata Locks) 多核 CPU 优化、InnoDB I/O 子系统性能提升 企业版引入线程池
EOL 于 2018 年 12 月。最终版本 5.5.62。
四、企业级成熟期(2013 - 2023)这个阶段 MySQL 在性能、复制架构、SQL 功能上持续追赶企业级数据库标杆。 MySQL 5.6(2013.02.05 GA)首个 GA 版本 5.6.10。主要新特性: GTID(Global Transaction Identifier)复制:彻底解决主从切换时日志位置定位困难的问题 无损复制(Lossless Semi-Synchronous Replication) 延迟复制(Delayed Replication) Online DDL:ALTER 操作不再阻塞 DML InnoDB Memcached 插件:可直接通过 Memcached 协议访问 InnoDB 时间类型重构:DATETIME 支持小数秒,空间从 8 字节减至 5 字节 统计信息持久化 可传输表空间
EOL 于 2021 年 2 月。最终版本 5.6.51。 MySQL 5.7(2015.10.21 GA)MySQL 5.x 系列的巅峰版本,也是大量企业长期使用的经典版本。主要新特性: JSON 数据类型:原生支持 JSON 存储和查询(MySQL 首次响应 NoSQL 趋势) 性能模式(Performance Schema)大幅增强 生成列(Generated Columns) 多源复制(Multi-Source Replication) 增强的优化器:改进成本模型 默认 InnoDB、默认 utf8mb4(部分场景) caching_sha2_password 认证插件引入(更安全,但 5.7 默认仍为 mysql_native_password) 组复制(Group Replication,MGR)在 5.7.17 引入:原生高可用集群方案
EOL 于 2023 年 10 月。最终版本 5.7.44。 关于跳过 6.x 和 7.x:MySQL 从 5.7 直接跳到 8.0,跳过了 6.x 和 7.x。MySQL 6.0 曾在 2008-2009 年间有过开发计划(包含 Falcon 存储引擎、在线备份等特性),但因 Sun 被收购、战略调整等原因被取消。版本号直接跳到 8.0 的官方说法是"代表一次重大重写"。社区也有说法是为了与 Java 8 的命名风格呼应。
MySQL 8.0(2018.04.19 GA)MySQL 历史上最大规模的架构升级。并非简单的版本号递增,而是从数据字典到优化器的全面重写。主要新特性: 事务性数据字典:元数据从文件系统(.frm 文件)迁移到 InnoDB 表中存储,彻底解决 .frm 文件不一致的老问题 窗口函数(Window Functions)和公共表表达式(CTE):追赶 PostgreSQL 和 Oracle 的 SQL 功能 自增列持久化:重启不再重置 不可见索引(Invisible Index) 降序索引 JSON 增强:JSON_TABLE、JSON 聚合函数 角色(Roles):简化权限管理 默认认证插件改为 caching_sha2_password InnoDB 引擎大幅优化:自适应刷新、缓冲池动态调整 原子 DDL:DDL 操作原子化
EOL 于 2026 年 4 月(8.0.46 为最终版本)。用户被建议升级到 8.4 LTS 或 Innovation 版本。 从 MySQL 8.0.11 起,不支持从 8.0 降级到 5.7,也不支持从 8.0 某版本降级到之前的 8.0 版本——唯一的回退方式是恢复升级前的备份。
五、LTS/Innovation 双轨期(2023 至今)从 MySQL 8.1 开始,Oracle 引入了全新的发布模型,分为两个轨道: MySQL 8.1(2023.07 Innovation)首个 Innovation 版本。新增部分功能特性和安全增强。 MySQL 8.2(2023.10 Innovation)增强事务管理、JSON 操作函数。 MySQL 8.3(2023.12 Innovation)Innovation 系列的第三个版本。 MySQL 8.4 LTS(2024.04 GA)当前推荐的长期支持版本。8.0 的继任者,提供稳定性和性能优化。Premier Support 至 2029 年 4 月,Extended Support 至 2032 年 4 月。新增特性包括: InnoDB ClusterSet 增强 MySQL Shell 改进 复制和路由增强 向量搜索的初步准备
注意:MySQL 5.7 无法直接升级到 8.4,需要先升级到 8.0,再从 8.0 升级到 8.4。
MySQL 9.0(2024.07.01 Innovation)9.x 系列的首个版本。主要变化: mysql_native_password 认证插件被删除:旧客户端如不具备 client_plugin_auth 能力将无法连接。为向后兼容,9.0 客户端仍可连接旧版服务器 EXPLAIN ANALYZE 支持 JSON 格式输出 Performance Schema 新增 variables_metadata 和 global_variable_attributes 表 Windows 版体验改善 MySQL Shell 改进
9.0 的定位是"9.x 系列的初始版本,为后续版本添加新功能做准备",本身新功能并不多。
MySQL 9.1(2024.10 Innovation)9.x 系列的第二个 Innovation 版本。 MySQL HeatWave 版本线(独立于 Server 版本)HeatWave 是 MySQL 的内存查询加速器(In-Memory Query Accelerator),独立迭代,节奏更快: HeatWave 9.7.0(2026.04.21):截至 2026 年 8 月最新 HeatWave 9.6.x(2026.01-02) HeatWave 9.5.x(2025.10-12) HeatWave 9.4.x(2025.07-09) 基本保持每 1-2 个月一个版本的迭代节奏
HeatWave 支持 MySQL Autopilot(AI 驱动的自动化管理)、HeatWave AutoML(自动机器学习)、HeatWave Lakehouse(数据湖查询)等高级特性,是 Oracle 推动 MySQL 向 AI 和分析领域扩展的核心组件。
六、关键历史节点与所有权变迁1995 年:MySQL AB 雏形创立,首个内部版本发布1999 年:MySQL AB 正式成立,3.23 开发开始2000 年:MySQL 以 GPL 协议开源2005 年:Oracle 收购 Innobase(InnoDB 开发商),社区震动2008 年:Sun Microsystems 以约 10 亿美元收购 MySQL AB2009 年:Monty Widenius 离开 Sun,发起"Save MySQL"运动2009 年:Oracle 以约 74 亿美元收购 Sun,MySQL 归入 Oracle2010 年:MariaDB 作为 MySQL 分支正式发布,由 Monty Widenius 主导2018 年:MySQL 8.0 发布,最大规模架构升级2023 年:引入 LTS/Innovation 双轨发布模型2026 年 4 月:MySQL 8.0 EOL,用户需迁移到 8.4 LTS
七、版本号跳过与命名规律跳过的版本号: 跳过 2.x:从 1.0 直接跳到 3.11,原因不明,社区推测是版本号管理随意 跳过 6.x:MySQL 6.0 曾在 2008-2009 年开发(包含 Falcon 引擎、在线备份),因 Sun 收购后战略调整被取消 跳过 7.x:从未有 7.x 开发计划,从 5.7 直接到 8.0 版本号从 5.x 跳到 8.0:官方说法是"代表一次重大重写"
发布模型(8.1 起):
八、MariaDB 分支说明作为 MySQL 最重要的分支,MariaDB 的发展路径值得单独说明: MariaDB 5.1 - 5.5:与 MySQL 同版本号保持兼容,可作为 MySQL 的"drop-in replacement"(直接替换)MariaDB 10.0(2014):开始与 MySQL 分道扬镳,引入独立特性(如 TokuDB、Cassandra 存储引擎)MariaDB 10.6+:进一步脱离 MySQL 兼容性MariaDB 11.x(2023+):完全独立的发展路线,不再追求与 MySQL 的兼容性 Monty Widenius 创建 MariaDB 的直接原因:对 Oracle 收购 MySQL 后的开源前景不信任。MariaDB 以 Monty 的小孙女 Maria 命名。
九、版本支持周期与选型建议当前活跃版本的支持周期(截至 2026 年 8 月): MySQL 5.7:已于 2023.10 EOL,大量企业仍在违规使用 MySQL 8.0:已于 2026.04 EOL(8.0.46 为最终版本),正在推动迁移 MySQL 8.4 LTS:Premier Support 至 2029.04,Extended Support 至 2032.04。当前最推荐的稳定生产版本 MySQL 9.0/9.1 Innovation:支持到下一个次版本发布,适合开发尝鲜
选型建议: 老项目维护,稳定为王:从 5.7 升级到 8.0(过渡)再到 8.4 LTS。注意 5.7 不能直接升 8.4 新项目:直接上 MySQL 8.4 LTS,支持至 2029/2032 年 尝鲜新功能:MySQL 9.x Innovation,但不要用于生产 云托管:MySQL HeatWave on OCI,或 AWS RDS for MySQL、Azure Database for MySQL 考虑 MariaDB:如果担心 Oracle 控制 MySQL 的方向,MariaDB 是可行的替代方案
十、小结纵观 MySQL 三十年发展史,可以清晰看到五条主线: 存储引擎演进:ISAM → MyISAM → Berkeley DB → InnoDB → 可插拔架构 → HeatWave SQL 功能:基本 CRUD → 子查询 → 存储过程/触发器/视图 → 分区 → JSON → 窗口函数/CTE 复制架构:无 → 异步主从 → 半同步 → GTID → 组复制(MGR)→ ClusterSet 商业模式:免费开源 → 双许可(GPL + 商业)→ Sun 收购 → Oracle 收购 → LTS/Innovation 双轨 竞争格局:Web 开发首选 → 与 PostgreSQL 竞争 → NoSQL 冲击 → JSON 适配 → AI/HeatWave
MySQL 能从 1996 年一个简陋的内部工具,发展为 2026 年全球最流行的开源关系数据库,靠的是简洁、快速、免费、社区驱动的核心基因。虽然 Oracle 接手后引发了一些争议(导致了 MariaDB 分支),但 Oracle 也投入了大量资源推动 MySQL 企业化——8.0 的全面重写、LTS/Innovation 双轨模型、HeatWave AI 加速器都是 Oracle 时代的产物。 千万别弄混 8.0 和 8.4 的关系——8.4 不是 8.0 的补丁升级,而是 8.0 之后的新 LTS 版本,用户需要从 8.0 升级到 8.4。也别以为版本号跳过 6 和 7 有什么深意,6.0 开发过但被取消了,7.x 从未存在过。 以上所有内容基于 Oracle 官方 MySQL 博客(blogs.oracle.com/mysql-jp)、MySQL 官方文档(dev.mysql.com)、Oracle 官方博客(blogs.oracle.com/mysql)以及腾讯云开发者社区、CSDN、知乎等技术社区资料交叉验证整理。欢迎各位老 DBA 补充纠正。
主要参考来源: Oracle 官方 MySQL 博客:blogs.oracle.com/mysql-jp/post/mysql-retrospective-the-early-years-jp(早期版本详细时间线) MySQL 官方文档:dev.mysql.com/doc/relnotes/mysql/8.0/en/(8.0 Release Notes,EOL 信息) Oracle 官方博客:blogs.oracle.com/mysql/post/mysql-july-2024-ga-releases-now-available(9.0/9.1 GA 信息) MySQL 官方网站:mysql.com/jp/why-mysql/presentations/(LTS/Innovation 模型说明) MySQL 官方 HeatWave Release Notes:dev.mysql.com/doc/relnotes/heatwave/en/(HeatWave 版本时间线) 腾讯云开发者社区:cloud.tencent.com/developer/article/2074929(版本历史与特性) 知乎:MySQL 版本演变史 / MySQL 版本大盘点(发布日期交叉验证) CSDN:MySQL 各历史版本 / MySQL 9.0 创新版(特性与日期交叉验证) 博客园:MySQL 发展史 / 简述 MySQL 发展史(早期版本细节)
|