腾讯亿级用户规模自研业务的上云实践解读,立即报名 了解详情
写点什么

Oracle 大佬离职,怒喷 MySQL “糟糕的数据库”

  • 2021-12-07
  • 本文字数:2482 字

    阅读完需:约 8 分钟

Oracle 大佬离职,怒喷 MySQL “糟糕的数据库”

12 月 5 日,甲骨文首席软件工程师兼 MySQL 优化器团队成员 Steinar Gunderson 在其博客发表了一篇文章,表示自己即将从 Oracle 离职,同时在文章中吐槽 MySQL 是一个非常糟糕的数据库,并建议开发者改用 PostgreSQL

怒喷 MySQL 引发热议

 

Steinar Gunderson 是 SNAPY 压缩库的作者之一,曾参与 IPv6 的开发,此前在谷歌任职,参与开发图像和离线卡片的搜索服务。Steinar 最近五年一直在 Oracle,负责 MySQL DBMS 优化器的升级工作。Steinar 在文章中表示,此次从 Oracle 离职后,将重返谷歌,参与 Chrome 浏览器的开发。

 

他直言 MySQL 的代码仍有“很大的改进空间”,“公司管理层也一直支持大规模重构”。“使用 MySQL 就像走进了一个平行宇宙,这里有很多人都由内而外笃信着 MySQL 就是最先进的数据库产品。但我不行,我的工作经常需要向观众们讲解优化器的内部工作原理,所以我特别能感受到 MySQL 的种种设计是多么原始。”


尽管如此,Steinar 依然对自己在 MySQL 项目中的贡献感到自豪,他表示自己参与的 MySQL 8.0 版本确实“比 5.7 版本好得多”,而且仍在持续改进,但“我们能做的也只有这些了”。


“我和同事们一直努力让 MySQL 优化器能够达到 2000 年初的标准设计水平,还做出了不少很好的调整,但也就是这样了。”


此次吐槽也是在外网引发了激烈讨论,有网友表示,他最近在使用 PostgreSQL 时遇到了许多困扰,比如逻辑复制。不同于 MySQL,PostgreSQL 是最近才内置了逻辑复制的功能,而且使用上有不少小问题。

 

也有网友认为,这是一个 “90%-10%”的问题,MySQL 在普通用户花 90% 的时间做 10% 的工作上完成的很出色。一个简单的执行,一秒钟几百个客户等等,MySQL 可以做到。当客户数量和业务复杂性出现爆炸式增长时,事情就会变得比较棘手,而这个时候想从 MySQL 中撤出就比较难了。

 

帖子底下还有许多关于 MySQL、PostgreSQL 还有其他类型数据库的讨论,感兴趣的可以访问下面链接:

 

https://news.ycombinator.com/item?id=29455852

MariaDB 也好不到哪里去?

 

MySQL 最初由 David Axmark 和 Michael Widenius 开发,第一个版本可以追溯到 1995 年,之后创立瑞典公司 MySQL AB,并于 2008 年被 Sun Microsystems 收购,Sun 公司本身也于 2009 年被 Oracle 并购。

 

此次收购之后,Michael Widenius 分叉 MySQL 推出了 MariaDB,同时雇佣了一个 MySQL 开发团队。此后,MariaDB 一直在发布其 MySQL 的迭代更新,特别是作为托管 DBssS。

 

不过 Steinar 对 MariaDB 也没什么好话。他在文章中提到“不要相信 MariaDB 会比 MySQL 更好”。“Michael 和他的手下离开是因为他们对新的管理方式不满意,而不是因为他们有一天突然醒悟过来,意识到他们在代码中埋下了多少混乱和隐患。

 

针对 Steinar 的吐槽,MariaDB 联合创始人兼产品管理副总裁 Max Mether 向 TheRegister 回应称:“没有任何一款数据库是完美的。不同模型、存储引擎、方言、协议的激增都证明了这一点。”


Max Mether 还说道:“无论你怎么看,在 Oracle 下的 MySQL 一直没有‘掌舵人’,在内部几乎快被抛弃,之前还受到过超大规模的攻击,而这位工程师的帖子再次强化了我对 MySQL 发生这些事件的看法。”他指出,MariaDB 在 2016 年就完全放弃了之前的 MySQL 代码,并引入了新的存储引擎、方言、监视器,甚至是基于机器学习的工作负载分析。

 

无硝烟之争


MySQL 和 PostgreSQL 都是当前全球最受欢迎的数据库。Steinar 没有详细说明为什么 PostgreSQL 作为一个开源的关系型数据库会比 MySQL 好得多,但他的观点确实得到了不少从业者的认同。

 

SIB Visions 的首席执行官 Roland Hörmann 上周在 Postgres Build 2021 大会上发表了演讲,专门探讨了如何从 Oracle 的专有数据库迁移到 PostgreSQL。

 

Roland 说到“如果客户问他们应该为一个项目选择哪个数据库,我一定会说 PostgreSQL,它是开源的,也会是更好的。”

 

“你建立一个数据库,配置一次 PostgreSQL 的配置文件,然后就可以永远运行了,可能会需要建立一个备份,但至少不用白白占用有经验的数据库管理员们太多宝贵的时间。”Roland 补充道。

 

但换个角度看,这其实不是什么“二选一”抉择题。Uber 曾从 MySQL 转到 PostgreSQL ,最后又从 PostgreSQL 转到 MySQL,网上也是总是有不少关于 MySQL 对比 PostgreSQL 的争论。作为两大主流开源数据库,MySQL 和 PostgreSQL 的 “战争” 从未停止。


前 Airbnb 技术经理、计算机博士朱赟在极客时间专栏中曾对此发表看法,类似 Uber 两次高调转型的事情,在她曾经工作过的 Square 公司也发生过。Square 最早使用的是 MySQL,到了 2012 年,由于 PostgreSQL 的各种优势越来越突出——比如对地理空间(Geospatial)数据和搜索的支持,当时几位资深工程师也开始大力倡导,很多新的服务就尝试性地使用 PostgreSQL。


在她来看,两者各有特点,有些技术实现在 MySQL 里更方便一点,另一些则反之。无论哪种数据存储方式,总有方案可以解决问题,并没有觉得非要哪一种才行。因此,她认为两者各有各的优势和使用场景,并不存在一种数据库对另一种压倒性优势的说法。“对于大部分程序员来说,公司用哪个数据库,基本无需你去决定。加入一个公司的时候,除非是创业公司,或者你是 CTO、VP、总监级别的,否则大部分的技术选型早已应该尘埃落定。尤其是数据库,一旦选择,再迁移的代价非常大。因此,除非有颠覆性的优势或者难以克服的问题,很少有公司会去费时费力做这种大的迁移。”


朱赟还表示,不论是技术选型还是技术转型,其中不可忽略的因素是:你的工程师更容易驾驭哪一种技术,或者有话语权的决策者们倾向于哪一种技术。这一点其实和程序语言的选型有异曲同工之处。“一个公司如果数据库从来不出问题,那一定是因为没有业务量或者流量。所有技术的选型和设计,都有它的应用场景,除去那些让人开心的案例,剩下的毫无疑问就是坑。如何尽可能地避开这些坑,如何在出现问题的时候可以用最快的速度去修复,这些都是至关重要的因素。”

 

参考链接:

https://blog.sesse.net/blog/tech/2021-12-05-16-41_leaving_mysql.html

https://www.theregister.com/2021/12/06/mysql_a_pretty_poor_database/

2021-12-07 19:5510403

评论 1 条评论

发布
用户头像
That is why we need NewSQL.
2021-12-11 11:35
回复
没有更多了
发现更多内容
Oracle 大佬离职,怒喷 MySQL “糟糕的数据库”_语言 & 开发_辛晓亮_InfoQ精选文章