MySQL 和 MariaDB 版本管理的历史背景及差异
在本文中,我们将探讨 MySQL 和 MariaDB 服务生命周期和版本管理方式两个方面目前的状况及相关历史背景。
作者:Peter Zaitsev
本文来源:Percona 官网博客
- 爱可生开源社区出品。
需要说明的是 MySQL 和 MariaD B都有社区版和企业版。对于 MySQL,这两个版本都是由同一家公司(Oracle)提供,遵循相同的版本编号体系,企业版包含更丰富的功能。对于 MariaDB,社区版由 MariaDB 基金会提供,而企业版由 MariaDB PLC 提供,采用独有的生命周期 与功能配置。为简单起见,我们将重点关注社区版。
MariaDB
你可能了解到,MariaDB 起初是 MySQL 的一个分支。早期。两者发展模式相似。但从 2014 年 MariaDB 10 版开始,情况大为不同。这一次,MariaDB 不再与 MySQL 版本匹配,从而抛弃了之前与 MySQL 5.1 和 MySQL 5.5 版本一致的模式。
获得独立的版本体系允许 MariaDB 以更快的节奏独立创新,而不会因为与 MySQL 版本号相同而产生用户误导。例如,MariaDB 曾经有 5.2 和 5.3 两个版本,但 MySQL 没有对应的版本号。
MariaDB 发展迅速。紧接着 2015 年发布了 MariaDB 10.1 版本,2017 年发布了 MariaDB 10.2 版本。此后,主版本每个 1-2 年发布一次,2021 年发布了 MariaDB 10.6 版。不过,每一个版本都提供 5 年的长期支持期限,这给工程团队带来了额外负担。
为了解决这个问题,MariaDB 从 2021 年底开始实施“创新版模型”。与 Ubuntu Linux 发布模式类似,每个季度发布一个短期支持版本(支持 1 年),同时还会选择性发布 LTS 版本(至少 5 年)。短期支持版本和长期支持版本遵循相同的版本编号方式。
最近,MariaDB 也将主版本从 10 改为 11。产品经理 Kaj Arno 解释说,这主要是计划对优化器及其成本模型进行复杂修改所致。目前新 11 系列还没有 LTS 版本,最新的 LTS 版本是 MariaDB 10.11,支持周期至 2028 年 2 月。
MySQL
起初,在 Oracle 的领导下,MySQL 继续遵循原有的版本生发周期。每隔几年,就会有大的功能版本,还会有“仅修复错误”的小版本。MySQL 5.5、MySQL 5.6 和 MySQL 5.7 就是这种情况。
这种发布周期的好处是稳定!次要版本升级的风险相当低,如果需要回滚,可以通过快速交换二进制文件来完成,而不需要对数据执行任何操作。然而,与所有事情一样,都需要权衡。这种方法的缺点是新功能的推出缓慢以及主要版本之间的巨大变化,使得升级可能变得混乱且耗时。
在 MySQL 8 中发生了巨大的变化。MySQL 8 看起来像是一个“长期迭代版”。虽然最初的 GA 版本于 2018 年 4 月发布,但我们已经五年没有看到新的主要版本了!这并不意味着 MySQL 8 没有创新;相反,现在的 MySQL 8 与 2018 年发布的版本有很大不同,因为在每个小版本中,都会引入新功能并修复错误。
如果您喜欢更快地获得新功能,那一定会喜欢这种新的发布方法。从理论上讲,这也意味着这些“功能版本”升级的风险较小,与过去主要版本需要数年的工作相比,这些升级只需要几个月的开发工作。然而,实际情况并非如此,因为某些版本包含新功能,其中的错误足以导致版本召回。更糟糕的是,MySQL 8 一旦升级到新的版本,无法保证以前的版本能够操作相同的数据。
MySQL 团队也认识到 MySQL 8 发布方式的问题;因此,接下来将引入新的发布模型。该模型引入了 Innovation 版本,大约每季度发布一次,并且仅支持最新的创新版本(即,任何错误修复都将与新功能一起推出,并作为下一个创新版本推出,类似于 MySQL 8.0 现在的运行方式)。另一种版本是 LTS 版本,该版本每隔几年发布一次,并由 Oracle 支持 8 年(5 年标准 + 3 年扩展)。
MySQL LTS 版本的运行方式与 MySQL 8 之前的 MySQL 运行方式类似。 创新版本有点类似于 MySQL 团队在某些时候使用的“里程碑版本”,但里程碑版本不被视为“生产就绪”,而是用于开发和预览版、创新版被视为“生产级质量”。
MySQL 8.0 在此版本模型中占有特殊的地位。目前,它基本上是一个创新风格版本,但随着 MySQL 8.0.34 的发布,它将成为仅修复错误的 LTS 版本。
差异
有趣的是,两个社区似乎都认识到我们 既需要高速创新又需要稳定,但也不能在同一个发行系列中真正同时拥有这两种方式。还需要控制支持和维护成本;因此,不能拥有太多积极支持的版本。
MariaDB 和 MySQL 都得出结论,他们需要同时注重创新速度的 LTS 版本和版本。
MySQL 和 MariaDB 的 LTS 发布节奏也可能相似。MySQL 的 LTS 版本大约每两年发布一次,这与 MariaDB 类似,“至少每隔一年”发布一次。不同之处在于,MariaDB 还与主要 Linux 发行版合作,使 MariaDB LTS 版本与 Linux 发行版 LTS 发行计划保持一致,而 MySQL 没有声明任何此类目标。
存在差异的地方在于非 LTS 版本的处理方式。
当在有限时间内发布“仅修复错误”的版本时,MariaDB 会选择“短期支持”路线,而 MySQL 选择支持滚动创新版本的路径,其中错误修复仅包含在最新的创新版本中。看看这些选择如何发挥作用将会很有趣:
- MariaDB 的方法更加“用户友好”,因为它使用户可以更好地控制何时升级到下一个功能版本。
- MySQL 的方法减少了支持版本所需的工作。
另一个重要的区别是支持什么类型的升级。
- MySQL 仅支持升级到下一个主要版本(即,您不能直接从 MySQL 5.6 升级到 MySQL 8)。
- MariaDB 支持在升级中跳过主要版本。
更多技术文章,请访问:https://opensource.actionsky.com/
关于 SQLE
爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。
SQLE 获取

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
OpenAI超级对齐负责人:“驾驭”超级智能的四年计划
随着AI领域的快速发展,OpenAI预言超级智能将在十年内出现。对人类而言,超级智能既是机遇也是挑战,它可以帮助人类解决很多重大问题,但也可能产生巨大风险,因此,超级智能对齐问题成为人们当下关注的重点,我们需要确保超级智能与人类整体意志保持一致,让它们理解和满足人类的愿望与需求。 近期,OpenAI承诺将目前为止获得的计算资源中的20%用于对齐超级智能,并成立了一个名为“超级对齐(Superalignment)”的团队,宣称将在四年内解决超级智能对齐问题。他们计划先训练一个大致与人类水平相当的AI自动对齐研究员,再借助自动对齐研究员解决超级智能对齐问题。 超级对齐团队由OpenAI联合创始人兼首席科学家Ilya Sutskever和Alignment负责人Jan Leike共同领导,后者此前在DeepMind工作四年,研究人类反馈的强化学习以及递归奖励建模。 在探讨AI风险的AXRP播客节目中,UC伯克利博士生Daniel Filan与Jan Leike探讨了OpenAI的超级对齐计划的具体内容以及挑战。(以下内容经授权后由OneFlow编译发布,转载请联系授权。https://axr...
- 下一篇
聊聊数据库中的烂索引
背景 索引是数据库中用于加速查询的常用组件,它通过对数据冗余和重组织来加速SQL查询。通常来说,恰当的索引可以提升系统的查询性能。 关于索引存在一些误解,如:索引总是能提升查询性能,因此索引越多越好,比如下图中的例子 只看收益,不看代价是不行的。分布式数据库系统一般支持两类索引:由分布式全局事务维护的全局索引、由本地事务维护的本地索引。这两类索引都会不同程度影响系统的写入性能,下图展示了建立不同数量的索引时,对系统的写入性能的影响。 可以看出创建1个全局索引,就会使系统的写入性能降低至原来的约30%;单看MySQL,在创建8个索引(本地索引)的情况下,写入性能会降低至原来的85%(引用自我们的历史文章TiDB、OceanBase、PolarDB-X、CockroachDB二级索引写入性能测评,感兴趣的读者可深入阅读)。 因此,在我们享受索引带来的查询加速收益时,还需关注其引入的维护开销。特别是当引入一个索引没能带来预期收益、或者带来的开销远大于其带来的查询加速收益时,索引反而成为一种负担。我们称这类索引为烂索引,避开它们可以帮助数据库获得更好的写入性能。 回顾文章开头举例的表 ware...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启