社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

MySQL 是怎么从巅峰急剧坠落的?

DBAplus社群 • 3 月前 • 161 次点击  


今天看到了一幅图,MySQL历年的Commit数目:


  

从中可以清晰地看出,自2006/2007年达到顶峰以后,Commit数目一路下降,如今的数字只是最高峰的五六分之一!


另外一幅图是Stack Overflow的2025年度调查:



PostgreSQL排名第一,大幅领先MySQL。


这更让我吃惊,因为我记得2022年的时候PostgreSQL还不如MySQL,没想到短短三年差距这么大了。


不过,Stack Overflow是用调查的方式,主要统计程序员在开发中使用的数据库,市面上还有很多系统在使用MySQL呢,并没有统计进去。


我又赶紧去看了一下MySQL在DB-Engines的排名:



还好,MySQL依然排名第二,但是相比一年前,分数大幅下降了(-130.63)。


而PostGreSQL从2014年开始,则是一路增长,迅猛上扬。



可以说,MySQL的存量市场和使用惯性还在,但精神感召力似乎消失了。


这到底是什么原因呢?


Amazon RDS for MySQL和MariaDB的前软件开发经理Otto认为:这是因为作为开源项目的管理者,Oracle已经不值得信任了。


他甚至说:“2026年别再使用MySQL了,它不是真正的开源软件”,他的主要理由如下:


一、开发工作闭门进行


公开的bug跟踪系统并不是 Oracle 主要使用的开发工具,少数为MySQL做贡献的人只能眼睁睁看到自己的Pull Request和补丁被标记为已收到,但却得不到任何反馈。


这些修改有可能会出现在下一版本的MySQL中,也可能不出现,甚至可能会被重写。


在Git的提交者栏中,也只有Oracle员工的名字,真正的作者只能在博客文章中被简单提及一下。


这样长此以往,慢慢地就没有人愿意为MySQL做贡献了。


换句话说,MySQL虽然通过GPL开源,但它本身的开发方式已经不是一个标准的开源项目了。


二、MySQL在技术上衰落了


MySQL 8.0.29 把 ALTER TABLE 默认切换到更激进的 in-place 执行方式,但这个实现当时并不成熟,在大量边缘场景下会失败,这直接导致数据库崩溃,数据损坏,影响了许多用户。这个问题直到一年后的 MySQL 8.0.32 才得到彻底解决。


2018年MySQL 8.0发布以后,长达6年的时间没有新的重要版本发布,2024年才发布8.1,还没有多少新功能,让很多用户感到失望。


更有基准测试表示显示,在写入密集型负载下,MySQL9.5的吞吐量比8.0又下降了15%! 这确实是挺让人崩溃的。



在安全方面,MySQL也有不少问题,仅在 2025 年, MySQL 就发布了 123 个关于安全问题的 CVE ,而 MariaDB 只有 8 个 。


三、Oracle在引导大家使用收费的/闭源的产品


奥托说,MySQL 的软件本身、文档、官网,在各个层面都在引导用户放弃开源版本,转向收费的/闭源的 MySQL 版本。


我特意到MySQL的官网(https://www.mysql.com/cn/)看了一下:



你别说,首页写得大大的MySQL企业版,MySQL的云数据库HeatWave,AI ,Cluster,就是找不到社区版。


我又去看了MySQL各个产品的介绍:



这些产品确实让我有点儿晕,哪个是社区版?


标准版?经典版? 这是啥? 我搜了一下,发现这两者都是收费的,其实这个页面的所有产品都是收费的。


免费的社区版并不在这个MySQL的产品列表中!它都不配有个产品介绍了吗?


你要想下载的话,需要到下载页面,拉到最下方,才能看到:



2009年,MySQL之父Monty写的一篇文章:Oracle对MySQL的承诺都是空头支票。



当时Oracle要收购Sun(MySQL也在Sun旗下),欧盟担心扼杀竞争,几乎否决交易。


后来Oracle做出了10项承诺(5年期限),这才使得欧盟放行。


Monty说:“Oracle可能会把开发重点放到企业版上,或者添加闭源的扩展,使得社区版的兴趣和活跃度下降。”


“他们可能会放弃开源,关闭MySQL的某些部分。”


现在看来,Monty的话被应验了。


从商业的角度看,5年期限早已过去,Oracle完全可以基于自身利益选择如何发展MySQL这个产品,无可指责。


只不过大家也会用脚投票,选择其他真正开源的产品例如MariaDB。



MariaDB是MySQL最直接的平替,兼容性非常好。如果是新项目,或者是重要的重构项目,也可以直接上PostGreSQL。


按照目前的发展趋势,我感觉两三年内PostgreSQL就在DB-Engines的统计中全面超越MySQL,我个人从零几年就开始用MySQL,大大小小的项目用了很多,对它很有感情,看到他从巅峰坠落,心里真是有点儿伤感。


最后顺便提一下,Monty有三个孩子,名称分别是My,Maria,Max。


这三个孩子非常幸运,因为他们的父亲把他们的名字永远地“刻”在了三个数据库产品之上:


  • MySQL

  • MaxDB

  • MariaDB



本文作者

刘欣著有畅销书《码农翻身》,《半小时漫画计算机》,前IBM架构师,领导过多个企业应用架构设计和开发工作;洞察技术本质,擅长用故事去讲解复杂技术。


来源丨公众号:码农翻身(ID:coderising)
dbaplus社群欢迎广大技术人员投稿,投稿邮箱: editor@dbaplus.cn


图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/193968