跳过正文
  1. 数据库老司机/

Oracle最终还是杀死了MySQL

·1699 字·4 分钟· ·
数据库 MySQL
目录
MySQL走好 - 这篇文章属于一个选集。
§ 3: 本文

Peter Zaitsev | 译:冯若航@Vonng) | 微信原文 | Percona’s Blog

大约15年前,Oracle收购了Sun公司,从而也拥有了MySQL,互联网上关于Oracle何时会“扼杀MySQL”的讨论此起彼伏。当时流传有各种理论:从彻底扼杀 MySQL 以减少对 Oracle 专有数据库的竞争,到干掉 MySQL 开源项目,只留下 “MySQL企业版” 作为唯一选择。这些谣言的传播对 MariaDB,PostgreSQL 以及其他小众竞争者来说都是好生意,因此在当时传播得非常广泛。

作者:Percona Blog,Marco Tusa,MySQL 生态的重要贡献者,开发了知名的PT系列工具,MySQL备份工具,监控工具与发行版。

译者:冯若航,网名 Vonng,Pigsty 作者,PostgreSQL 专家与布道师。下云倡导者,数据库下云实践者。

然而实际上,Oracle 最终把 MySQL 管理得还不错。MySQL 团队基本都保留下来了,由 MySQL 老司机 Tomas Ulin 掌舵。MySQL 也变得更稳定、更安全。许多技术债务也解决了,许多现代开发者想要的功能也有了,例如 JSON支持和高级 SQL 标准功能的支持。

虽然确实有 “MySQL企业版” 这么个东西,但它实际上关注的是开发者不太在乎的企业需求:可插拔认证、审计、防火墙等等。虽然也有专有的 GUI 图形界面、监控与备份工具(例如 MySQL 企业监控),但业内同样有许多开源和商业软件竞争者,因此也说不上有特别大的供应商锁定。

在此期间我也常为 Oracle 辩护,因为许多人都觉得 MySQL 会遭受虐待,毕竟 —— Oracle 的名声确实比较糟糕。

不过在那段期间,我认为 Oracle 确实遵守了这条众所周知的开源成功黄金定律:“转换永远不应该妨碍采用

conversion.png

注:“Conversion should never compromise Adoption” 这句话指在开发或改进开源软件时,转换或升级过程中的任何变动都不应妨碍现有用户的使用习惯或新用户的加入。

然而随着近些年来 Oracle 推出了 “MySQL Heatwave”(一种 MySQL 云数据库服务),事情开始起变化了。

MySQL Heatwave 引入了许多 MySQL 社区版或企业版中没有的功能,如 加速分析查询 与 机器学习。

在“分析查询”上,MySQL 的问题相当严重,到现在甚至都还不支持 并行查询。市场上新出现的 CPU 核数越来越多,都到几百个了,但单核性能并没有显著增长,而不支持并行严重制约了 MySQL 的分析性能提升 —— 不仅仅影响分析应用的查询,日常事务性应用里面简单的 GROUP BY 查询也会受影响。(备注:MySQL 8 对 DDL 有一些 并行支持,但查询没有这种支持)

这么搞的原因,是不是希望用户能够有更多理由去买 MySQL Heatwave?但或者,人们其实也可以直接选择用分析能力更强的 PostgreSQL 和 ClickHouse。

另一个开源 MySQL 极为拉垮的领域是 向量检索。其他主流开源数据库都已经添加了向量检索功能,MariaDB 也正在努力实现这个功能,但就目前而言,MySQL 生态里只有云上限定的 MySQL Heatwave 才有这个功能,这实在是令人遗憾。

然后就是最奇怪的决策了 —— Javascript 功能只在企业版中提供,我认为 MySQL 应该尽可能去赢得 Javascript 开发者的心,而现在很多 JS 开发者都已经更倾向于更简单的 MongoDB 了。

我认为这些决策都违背了前面提到的开源黄金法则 —— 它们显然限制了 MySQL 的采用与普及 —— 不论是这些“XX限定”的特定功能,还是对 MySQL 未来政策变化的担忧。

这还没完,MySQL 的性能也出现了严重下降,也许是因为 多年来无视性能工程部门。与MySQL 5.6 相比,MySQL 8.x 单线程简单工作负载上的性能出现了大幅下滑。你可能会说增加功能难免会以牺牲性能为代价,但 MariaDB 的性能退化要轻微得多,而 PostgreSQL 甚至能在 新增功能的同时 显著提升性能

显然,我不知道 Oracle 管理团队是怎么想的,也不能说这到底是蠢还是坏,但过去几年的这些产品决策,显然不利于 MySQL 的普及,特别是在同一时间,PostgreSQL 在引领用户心智上高歌猛进,根据 DB-Engines 热度排名,大幅缩小了与 MySQL 的差距;而根据 StackOverflow开发者调查 ,甚至已经超过 MySQL 成为最流行的数据库了。

db-engine.png

无论如何,除非甲骨文转变其关注点,顾及现代开发者对关系数据库的需求,否则 MySQL 迟早要完 —— 无论是被 Oracle 的行为杀死,还是被 Oracle 的不作为杀死。


参考阅读
#

MySQL性能越来越差,Sakila将何去何从?

MySQL 的正确性为何如此垃圾?

Is Oracle Finally Killing MySQL?

Can Oracle Save MySQL?

Sakila, Where Are You Going?

Postgres vs MySQL: the impact of CPU overhead on performance

Perf regressions in MySQL from 5.6.21 to 8.0.36 using sysbench and a small server

MySQL走好 - 这篇文章属于一个选集。
§ 3: 本文

相关文章

MySQL性能越来越差,Sakila将何去何从?
·2933 字·6 分钟
数据库 MySQL
MySQL版本越高性能反而越差?在PostgreSQL高歌猛进,吞噬数据库世界的同时,MySQL的性能和功能被甩开的越来越远。为啥MySQL在Oracle手中止步不前?我看主要还是云厂商白嫖的锅,PG应当引以为戒。
MySQL正确性竟如此垃圾?
·6865 字·14 分钟
数据库 MySQL
MySQL的事务ACID存在缺陷,且与文档承诺不符。这可能会导致严重的正确性问题,使用时请保持谨慎。
20刀好兄弟PolarDB:论数据库该卖什么价?
·5106 字·11 分钟
数据库 国产数据库
今天来聊聊,商业数据库,开源数据库,云数据库,国产数据库的公允价格是多少。
国产数据库到底能不能打?
·3985 字·8 分钟
数据库 国产数据库
总有朋友问我,**国产数据库到底能不能打?**说实话,是个得罪人的问题。所以我们不妨试试用数据说话 —— 希望本文提供的图表,能够帮助读者了解数据库生态格局,并建立更为准确的比例感认知。
Redis不开源是“开源”之耻,更是公有云之耻
·3883 字·8 分钟
数据库 开源 Redis
Redis “不开源” 不是 Redis 的耻辱,而是“开源/OSI”的耻辱,更是公有云的耻辱。真正重要的事一直都是软件自由,而开源只是实现软件自由的一种手段。
数据库应该放入K8S里吗?
·5607 字·12 分钟
数据库 Kubernetes
数据库是否应该放入 Kubernetes / Docker 里,到今天仍然是一个充满争议的话题。今天我们来讨论这里的利弊权衡,并深入探讨为什么将数据库放入 K8S 中不是一个明智的选择。