MySQL和MariaDB版本管理的历史背景及差异

来源 | oschina 社区
作者 | 爱可生开源社区
在本文中,我们将探讨 mysql 和 mariadb 服务生命周期和版本管理方式两个方面目前的状况及相关历史背景。
需要说明的是 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 支持在升级中跳过主要版本。


许斌发表了《RGB全系列突进》的主题演讲
美国国防预先研究计划局:开发量子传感器以改变战场通信
纸张表面瑕疵在线检测仪的检测原理是怎样的
Linux和S3C2410的PROFIBUS-DP主站平台设计
无人机是否可以带动植保服务的发展
MySQL和MariaDB版本管理的历史背景及差异
剥离强度试验机产品特点的介绍
白炽灯泡将成为节能运动的眼中钉,反之LED灯泡开始普及
复合负极材料实现在液体和固态电池中倍率和循环性能
怎样设计一个简单的MM32F5277E9PV开发板
哪些将会推动统一通信和协作的发展
Sovit3D数字孪生智慧水务三维可视化系统
苹果12手机电池普遍缩水,最适合苹果12的无线充电宝
中兴CEO:手机的下一个革命,是全语音操作
RK3568平台硬件框基本参数的说明
扬尘在线监控系统RS-ZSYC4-*
手机充电器用电源变换器电路及原理分析
IBM将把Anaconda以此作为推进开源AI开发的一种方式
IDS China Summit: Standardizing Data Certification Globally
国产处理器研制成功,其性能堪比Intel i5-7400