前 Oracle 公司首席软件工程师、MySQL 优化器团队成员 Steinar H. Gunderson 在自 Oracle 离职前夕发布了一篇名为《Leaving MySQL》的博客。他在博客中写道,MySQL 是一个相当糟糕的数据库,并强烈建议大家应该考虑使用 Postgres。
Gunderson 还补充称,“不要相信 MariaDB 有多好。Monty 和他的手下离开是因为他们对新的管理方式不满意,而不是因为他们有一天突然醒悟过来,意识到他们在代码中造成了多么大的混乱”。MariaDB 是 MySQL 分支,由 MySQL 的创始人 Michael “Monty” Widenius 所创建;被设计为 MySQL 的直接替代产品。
Gunderson 在博客中描述了自己加入 MySQL 团队时的感受, 表示:
来到 MySQL 就像进入了一个平行宇宙,那里有很多人真正相信 MySQL 是一个最先进的产品。同时,我参加了培训并被告知优化器是如何在内部工作的;我真的需要一些缓冲时间来接受几乎所有的东西都是多么的原始。这感觉很奇怪,但我想你很快就会习惯了。从某种意义上说,这并没有让我感到困扰;很多糟糕的代码意味着有很多改进的机会,而且管理层也非常支持大规模的重构工作。更令人震惊的是那些坚持认为一切都很好的人(似乎大多数 MySQL 用户和开发人员并没有真正地使用过其他数据库);甚至像执行器这样明显疯狂的东西,在那里所有东西都是一个大块、所有东西都与其他东西相互作用,也被称誉为'高效'(其实不然)。
并针对上述言论举例称,譬如因为没有模块化,分类器必须关注它的输入是来自 table scan 还是 range scan。“任何不属于这两种情况的东西(包括连接),都需要很大的调整。在给定的设计中,如果不重写查询,完全的外层连接根本不可能执行(MySQL 仍然不支持它们,但至少现在它没有受到旧的 we-can-do-left-deep-plans-only 设计的阻碍)。甚至不让我着手使用'slice'系统,这也许是我在任何现实世界的软件中见过的最疯狂的设计。”
不过他也表示,还是为自己一直在做的工作感到由衷的自豪;MySQL 8.0 是比 5.7 更好的产品,而且它还将继续改进。但话锋一转,Gunderson 又指出,能做的也只有这么多了。“团队其他人和我一直都在致力于使 MySQL 优化器朝着相当标准的 21 世纪初期设计的方向发展,并有一些不错的调整,但这也是它的终点。”
Gunderson 称,无论 Oracle 公司内部说的有多天花乱坠,他依旧不认为 MySQL 会成为一个有竞争力的产品;并建议那些正在使用 MySQL 人,是时候该看看外面的世界了。
在离开 Oracle 后,Gunderson 已经加入了 Google Chrome 团队。