Oracle 工程师 MySQL 非常糟糕,Postgres 才是王道

前 Oracle 公司首席软件工程师、MySQL 优化器团队成员 Steinar H. Gunderson 在自 Oracle 离职前发布了一篇名为《Leaving MySQL》的博客。他在博客中写道,MySQL 是非常糟糕的,强烈建议大家考虑使用 Postgres。

今天是我在 Oracle 的最后一天,因此也是在 MySQL 团队的最后一天。

当决定换工作时,总会有一个“为什么”的问题,但这个问题总是有多种答案,也许最简单的一个是我找到了另一个机会,总的来说,很明显是时候了当它到达时继续前进。

但这并不能真正解释为什么我首先去其他地方寻找。其原因又是复杂的,不可能归结为单一的事情。尽管如此,让我指出过去五年我一直在内部和外部说的一些话(虽然从未在舞台上 - 这解释了为什么我一直远离谈论 MySQL 的舞台):MySQL 是一个漂亮的糟糕的数据库,你应该强烈考虑使用 Postgres 代替。 1

来到 MySQL 就像走进了一个平行宇宙,那里有很多人真正相信 MySQL 是最先进的产品。同时,我参加了定向并讲述了优化器在内部是如何工作的,我真的需要停顿一下,以了解几乎所有东西都是多么原始。感觉很奇怪,但我想你很快就会习惯的。从某种意义上说,它并没有那么困扰我。许多糟糕的代码意味着有很大的改进机会,管理层强烈支持大规模重构。更令人不快的是那些坚持一切正常的人(似乎大多数 MySQL 用户和开发人员并没有真正使用其他数据库);甚至像 executor 这样的明显疯狂的东西,在那里一切都是一个大块,一切都与其他一切相互作用2,也被称赞为“高效”(事实并非如此)。

不要误会我的意思;我为我一直在做的工作感到由衷的自豪,MySQL 8.0(其次要版本号不断增加)是比 5.7 更好的产品——而且它将继续改进。但你能做的只有这么多;其他人和我一直在做的更改使 MySQL 优化器朝着相当标准的 2000 年代早期设计方向发展,并进行了一些不错的调整,但这也是它结束的地方。 (有人称之为“追赶,一次十年”,我不确定这是积极的还是消极的,但我认为这是一种荣誉徽章。)最后,就是没有足够的资源,我可以看到它变成了一个有竞争力的产品,无论公司内部的沟通如何试图旋转 Oracle 充满了天才,我们正在云中取胜。这可能没问题(再说一次,这不是我辞职的真正原因);如果您正在使用 MySQL 并且它对您有用,当然,请继续。但也许可以考虑在某个时候看一看栅栏的另一边,越过“OMG 真空”模因。

我的新角色将是 Google Chrome 团队。可能是时候了;我的 T 恤系列有点破旧了。

1 不要相信 MariaDB 会更好。蒙蒂和他快乐的人离开是因为他们对新的治理不满意,而不是因为有一天他们突然醒来并意识到他们在代码中造成了多么混乱的皇室混乱。

2 例如,分拣机实际上必须关心它的输入是来自表扫描还是范围扫描,因为没有模块化。任何不是这两者中的任何一个,包括连接,都需要很大的扭曲。在不重写查询的情况下,完全外连接根本不可能在给定的设计中执行(MySQL 仍然不支持它们,但至少现在它没有受到旧的 we-can-do-left-deep-plans-only 设计的阻碍) .甚至不要让我开始使用“切片”系统,这可能是我在任何实际软件中见过的最疯狂的设计。

下一节:2 月 10 日,微软发布了结束对 Visual Studio IDE 旧版本支持的时间表。 该公司鼓励用户迁移到更新版本,尤其是新发布的 Visual Studio 2022。