172023.02

阴谋论: MySQL将死,国产数据库的春天?

2023.02.17

阴谋论: MySQL将死,国产数据库的春天?


世界上最流行的开源关系型数据库是什么?

毫无疑问是 MySQL。如果要列出前两名,那第二名就是 PostgreSQL 了。目前在 DBrank 网站上,PostgreSQL 和 MySQL 的评分差距依然很大,但能看出 PostgreSQL 在奋力追赶中。

图片

MySQL的市场份额

根据 2021 年 Slintel 网站的统计数据,在全球关系型数据库市场中,MySQL市场份额最高,达到43.04%,Oracle仅为16.76%。

中国信息通信研究院《数据库发展研究报告(2021年)》指出,我国金融行业各类数据库应用占比为Oracle 55%、DB2 19%、MySQL13%、PostgreSQL 6%,其他7%。

那么,为什么我说MySQL将死?

1. MySQL5.7将EOL,MySQL8.0即将ES,而MySQL9.0在哪儿?

  • EOL,End of Life,意思是生命周期结束。
  • ES,Extended Support,意思是扩展支持期。根据 Oracle MySQL 的软件生命周期规律,每个 MySQL 大版本都有 8 年的软件生命周期,这 8 年是如下分配的

图片

结合下图,Oracle 公司完全接管 MySQL 后,从 MySQL5.5 开始,就是严格地执行 8 年软件生命周期。

图片

在 2018 年 4 月 19 日到 2018 年 12 月 3 日之间,MySQL 最高峰达到了同时有 4 款产品在生命周期内,分别是 5.5、5.6、5.7、8.0,这是 MySQL 最高光的时刻。而现在呢?MySQL5.6 已经死去 2 年有余了,市面上的 MySQL 有且仅有两个可用版本,他们是 MySQL5.7 和 MySQL8.0。而 MySQL 根据 Oracle 的政策,MySQL5.7 将于今年的 10月 21 日生命结束。届时 Oracle 官方将不会继续按照每季度出版本补丁维护 MySQL5.7 数据库了,这意味着官方对于 Bug 不会修复(无论 Bug 是否严重),有安全漏洞也不会修复,数据库届时将处于安全风险之中。

现在最新的 MySQL5.7 版本是 5.7.41,也就是 MySQL5.7 将终结于 5.7.43 或者 5.7.44。

根据《全球共有多少MySQL实例在运行?这里有一份数据》文章表明,2022 年年中时,MySQL的不同版本份额占比如下:

  • MySQL 8.0 占比为8%
  • MySQL 5.7占比为46.7%
  • MySQL 5.6 占比为30%
  • MariaDB各版本占比为14%,其中包括了MariaDB 5.5占比8.1%,其10.1版本占比6%

按这份数据推算,相信到目前为止,MySQL5.7 依然占比很高,可能依然是主要版本。所以 MySQL5.7 EOL 的影响将非常大。

MySQL8.0 将于今年 4 月 19 日,进入扩展支持期,发布的版本号是 8.0.33,所以从 MySQL8.0.33 开始,MySQL 将不再积极发布新功能,而是转为仅修复关键错误或安全漏洞。并且 3 年后,MySQL8.0 也将寿终正寝。

那么,MySQL 要发布新功能会放在哪里呢?MySQL9.0 在哪儿呢?

我们知道 Oracle 在积极发展他的公有云 OCI,发展他的 HeatWave HTAP 架构,可能这就是答案。—— Oracle MySQL 将通过云的方式走向闭源,而开源的 MySQL9.0 不存在了

2. 最近MySQL8.0让我失去了信心

MySQL8.0 之前一直是越更新越多 Bug,原因是因为当时 MySQL8.0 处于 "积极发布阶段",他们甚至在 8.0.29 版本为了实现功能,引入了新的 redo log 设计,然后引发了一连串 Bug,有些 Bug 我们也踩到了,有部分 Bug 我们虽然没有踩到,但我们能根据 Bug detail 复现出来,都非常严重。MySQL8.0 将于今年 4 月 19 日,进入扩展支持期,进入一个以修 Bug 为主的稳定版本阶段,届时 8.0.33 我认为是非常适合上车的版本。但另一方面,我连续 3 个小版本踩到大 Bug,我对 MySQL8.0 最近确实失去了信心,所以作为 MySQLer 我在公司里是沉默的,没有主张使用 MySQL8.0。

3. 我说Oracle MySQL死,不代表MySQL系数据库死。

  • MySQL 诞生于 1995 年,作者是 Monty,一名伟大的程序员(见这篇文章《遇见MySQL/MariaDB创始人Monty》)。
  • 1999 年 MySQL Ab 公司在瑞典正式宣布成立(Ab,瑞典语 aktiebolag 的缩写,“股份公司”的意思)
  • 2006 年 Peter 和 Vadim Tkachenko 因不满意 MySQL Ab 公司的"open core"战略,而备份、监控等软件闭源放入到企业版的原因出走,创立了美国公司 percona。
  • 2008 年,Sun 公司收购 MySQL
  • 2009 年,Oracle 收购 Sun 公司获得 MySQL
  • 2009 年同年,因不满意 Oracle 这种没有开源精神的公司收购 MySQL,创始人 Monty 离职,创立 MariaDB Program Ab 公司,MariaDB 诞生。

至此,其实 MySQL 社区已经分裂了,主版本是 Oracle 控制的 MySQL,另外两个大分支,分别是 Peter 领导下的 Percona 和 原 MySQL 创始人领导的 MariaDB (这里,Percona 和 MariaDB 都是公司名,不过,数据库也同名。) 所以,我想说的是 Oracle 领导的 MySQL 将死,而 Percona、MariaDB 依然继续发展 MySQL 系数据库及 MySQL 的开源精神。国内也有类似的公司,例如万里数据库,他们有个中国的 MySQL 分支——GreatSQL。

为什么我说国产数据库的春天?

1. 政治立场

人工智能可以没有政治立场,假设我问 ChatGPT 政治立场相关话题,他会这么说。

图片

但人是有政治立场的,公司也是有政治立场的,甚至他们还表态了。

Percona 站队乌克兰

图片

MariaDB 站队乌克兰

图片

Oracle 站队乌克兰

图片

Percona、MariaDB 是 MySQL 数据库最出名的两个开源分支。

这就是西方的价值观统一战线,那么台海战争爆发,或者中美战争爆发,结果如何,可想而知吧?所以发展国产数据库可以避免这个卡脖子的问题。

2. 技术立场

人工智能也可以没有技术立场,假设我问 ChatGPT 技术立场相关话题,他会这么说。

图片

实际上,ChatGPT 的回答是错误的,虽然我是 MySQL 粉,但我还是必须承认 PG 功能要更强一些。

人是有技术立场的,如果你更熟悉 MySQL,你会更倾向于介绍客户使用 MySQL,如果你更喜欢 PG,你会推荐 PG,这没毛病,大胆承认。

借着 MySQL5.7 快死的这个机遇,跑在 MySQL5.7 上面的业务都需要迁移数据库,至于迁移到哪儿?

MySQLer 肯定会推进升级到 MySQL8.0,而 PGer 会趁机收回一些失地,国产数据库也会蚕食掉一部分份额。这部分包括了:

  • 想推兼容性比较强的国产 MySQL 分支的——上 GreatSQL
  • 想推分布式、HTAP 架构的——上 TiDB
  • 想转 PG 方向的—— 上 openGauss

等等。

最后

MySQL5.7 将要生命终结是替换国产数据库的一个好的契机,对于新项目,就不要规划使用 MySQL5.7 了,您可以规划使用 MySQL8.0,这一般没问题。但从政治上和技术上出发,您也可以有更多的选择。