21CTO导读:一位经验丰富的资深 MySQL 数据库工程师和企业家提出质疑,Oracle 正在倾向于在其专有系统中添加功能,正在“毁掉”MySQL。
话说,彼得·扎伊采夫 (Peter Zaitsev) 以前曾在 MySQL 公司担任性能工程师,而之后这个数据库连同母公司Sun被甲骨文 (Oracle) 连窝收购。
近日,他发表了一篇博客文章,批评 Oracle对当今最流行开源数据库的承诺。
大约在 15 年前,当 Oracle 收购 Sun并同时收购 MySQL ,互联网上关于 Oracle 何时“杀死 MySQL”的讨论并不少。
当时流传着多种理论,包括彻底杀死 MySQL以减少专有 Oracle 的竞争,或者只是将其作为开源项目杀死,只留下“MySQL Enterprise”作为唯一选择。传播这样的谣言对 MariaDB 和 PostgreSQL 以及其他较小的竞争对手来说都是一个好生意,因此这些谣言当时传播得非常广泛。
然而实际上,Oracle 后来成为了 MySQL 的优秀管理者。MySQL 团队基本保持独立,MySQL 由老将 Tomas Ulin 基本掌握着主导权。MySQL 变得更加稳定和安全。许多技术债务也得到了修复,许多现代型开发人员想要的功能也得到了添加,例如 JSON 支持和对高级 SQL 标准功能的支持。
虽然有“MySQL Enterprise ”,但它关注的是企业需求,开发人员不太关心这些功能,比如可插入式身份验证、审计、防火墙等。虽然也有专有的 GUI界面、监控和备份工具(例如 MySQL Enterprise Monitor),但也有很多开源和专有的竞争对手,因此并没有造成特别大的锁定。
在这段时间里,我也常常为 Oracle 辩护,那时候很多人都认为 Oracle 对待 MySQL 不会很好,因为他们是 Oracle。
我认为在那段时间里,Oracle 是一直在遵循和使用一个著名的开源黄金定律的:“转换不应损害采用。”
开源黄金法则
但是近年来,随着“MySQL Heatwave”(Oracle 的 MySQL 云数据库)的推出,情况开始起了变化。
MySQL Heatwave 包含许多 MySQL Community 或 MySQL Enterprise 中没有的功能,比如加速分析查询和ML(机器学习) 等功能。
但是,对于“分析查询”的问题却越来越严重,MySQL 到现在都没有并行查询功能的影子。
在拥有数百个核心的 CPU 的主机上,即便是这样的强大内核,MySQL速度并没有明显提升,这样就越来越限制了它的性能。
这不仅适用在来自分析应用程序的查询,也适用于应用程序中常见简单的“Group By”查询。(说明:MySQL 8 对 DDL 有一些并行支持,但对查询并没有提供支持)。
这能让人们有更多理由去买 MySQL Heatwave?或者,人们是不是更愿意转向同样开源的 PostgreSQL,再或者采用 ClickHouse?
向量搜索也是MySQL 缺乏的另一个领域。而其它主流开源数据库都增加了对向量搜索功能的支持,MariaDB 也正在努力实现这一功能,但至少现在可以说,在 MySQL 生态系统中,将其作为唯一的MySQL Heatwave 功能里也没有,这是令人遗憾的。
然后,也许现在说是最奇怪的选项。作为 Javascript 的支持现在作为 MySQL Enterprise 的独有功能发布,而我认为开源 MySQL 也应该具备这一特性,它应该尽一切努力赢得 Javascript 开发者的好感,现在已经有许多人已经更喜欢 MongoDB 等更简单的数据库了。
因此,我认为这些都违反了前面提到的开源黄金原则,它们无疑限制了 MySQL 的采用,无论是从这些特定功能的角度来看,还是从对这种看似政策变化对 MySQL 的未来,我开始生出了一些担忧。
如果这些还不够的话,MySQL 还在它的性能工程部门遭受了多年的忽视。
和 MySQL 5.6 相比较,简单的单线程工作负载性能也正在显著下降。你可以一直说功能与性能成反比,但 MariaDB 在同样功能的情况下,已经能够显著减少性能下降,PostgreSQL 甚至在添加新功能的同时又提高了性能。
当然,我没有权力参与 Oracle 管理团队的对话,也不能说这是无知还是恶意,但过去几年的此类产品决策肯定不利于 MySQL 的采用。
目前, PostgreSQL 已经大步赢得了人心。根据 DB-Engines 的数据,它已经大大缩小了与 MySQL 的采用差距,而且根据StackOverflow 开发人员调查,它已经是最受欢迎的开源关系数据库,MySQL开始出现了下滑。
DB-Engines Ranking 中的MySQL与PostgreSQL比较
上面是作者的全文,我们再来梳理一下。
这位扎伊采夫是俄罗斯资深软件工程师,以前还参与编写了有关高性能 MySQL 的畅销书籍,他在之前也的确为 Oracle 对开源数据库的管理摇旗呐喊,进行过辩护。
大家知道,MySQL 是在 20 世纪 90 年代中期创建的。Sun Microsystems 于 2008 年收购了该公司,而 Oracle 又于 2010 年收购了 Sun。
扎伊采夫后来在 2006 年创立了开源数据库咨询公司 Percona。
扎伊采夫认为,如果 Oracle 认为维护 MySQL 应该成为共同责任。“如果他们不再从承担维护项目的大部分负担中获得价值,那么可以将MySQL转移到 Linux 基金会,或者类似的机构,专注于维护他们的内部版本(类似于 AWS Aurora)。在这种情况下,期望 AWS/GCP 等分担推动开源项目前进的负担是平衡的。我希望和相信他们会这样做。”
有一些人也不是都同意 Oracle 的举措会扼杀开源 MySQL。
其中,一位数据库专家这样说:
“我不确定他们的重点是 MySQL DBaaS。我必须要看他们对服务器本身做了什么,才能正确回答这个问题。我认为不会,如果真的如此会让我非常难过。我一直在忙着尝试获得一个运行良好且可扩展的 PgPool 设置,我可以告诉你,与 ProxySQL 和 MySQL Router 相比,它确是有欠缺的。”
扎伊采夫回应说:
“专注于 DBaaS 将意味着忽视开源 MySQL,而落后于其它产品,则意味着将被杀死...”
做为首席技术官的 Mark Callaghan 表示:“我同意这一点,但承认这一点非常痛苦。我的MySQL社区正在衰落——只有引入外部贡献者才能扩展 MySQL、破解 MySQL问题、提交错误报告、修复错误,有时还能让它变得更好。”
扎伊采夫最后强调说:
“除非 Oracle 将注意力转向现代开发人员对关系数据库的需求,否则它将彻底扼杀 MySQL。
如果再不行动的话,那么就是不作为!”
各位同学怎么看?欢迎留言~
作者:万能的大雄