MySQL 30 周年:改变世界的数据库

文章回顾了 MySQL 三十年的历程,阐述了这款开源数据库如何依托 LAMP 架构支持互联网发展,以及在 Sun、Oracle 收购与 MariaDB 分叉中的变革与影响。

在唐纳德 Trump 成为美国总统、英国脱欧——这两件事可说都是新型网络政治的产物——之前,一位看起来颇为紧张的 Mark Zuckerberg 曾走上 Harvard University 讲堂的舞台,为大家揭示他不到两年前创建的网站的一些内部运作原理。

在 2005 年 12 月的一次演讲中,他解释了他的社交网络网站 Facebook 是如何仅凭大约 50 名员工、一批租用服务器以及一些开源软件(包括数据库)来支撑每天 4 亿页面浏览量的。

Codd 大法无边!SQL 真得已经半个世纪了吗?

“现如今 MySQL 是一个非常优秀的开源数据库。我不知道在座各位是否曾经尝试用 MySQL 搞些东西,或者以其他方式使用过它,但它非常易用,而且速度也相当快。虽说功能没有 Oracle 那样全面,但它依旧表现出色。” 年轻的 Zuckerberg 如此对在场稀疏的听众说道。

如今的世界大不相同。Zuckerberg 现价值约 1730 亿美元,Facebook 拥有大约 30 亿活跃用户,其母公司 Meta 的市值约为 1.4 万亿美元,更不用说社交媒体现已主导政治话语。但 MySQL 依然表现强劲,并于本月迎来了其 30 周年庆。

据报道,Meta 在其各项技术栈中仍大量采用 MySQL(该公司拒绝参与本文采访),而这款始于 1990 年代中期瑞典的开源数据库的应用情况,很好地诠释了为何它能如此流行。

MySQL 的出现恰逢互联网泡沫的热潮,这一时期预示着技术与商业的兴起,并催生了被称为 Web 2.0 的新一代网络。在宽泛意义上,Web 2.0 是 1990 年代前身的更具编程能力和交互性的版本,众多组织纷纷构建系统以争取吸引上世纪末至本世纪初涌入网络的数以百万计的用户。随着互联网泡沫的破灭,投资稀缺促使大家转向开源软件。MySQL 成为 LAMP(Linux、Apache、MySQL、Perl/PHP/Python)堆栈中的“M”,成为构建面向网络系统的事实标准。

PlanetScale 首席执行官 Sam Lambert(一家部分基于 MySQL 构建的数据库公司的 CEO)表示:“大约在 2004 年,我开始尝试使用 MySQL,因为当你要让一个网站在网上有任何功能时,默认选择就是 MySQL,而 LAMP 堆栈则提供了一个开箱即用的、极具优势的工具集。”

Lambert 补充道,“我最初开发的产品 —— 一个通过短信实现 URL 缩短的平台 —— 就是利用 MySQL 存储 URL 映射并返回数据。从那一神奇时刻起,我从 DBA(数据库管理员)一路走到后来成为工程团队的领导。” 他曾任 GitHub 工程副总裁。

“我们在 GitHub 以及全球最大的网站之一背后,都在使用 MySQL,而它依然蓬勃发展。”

Lambert 表示,当时 MySQL 对工程师们来说非常实用,因为其开发者从最初就有明确目标,旨在构建一个简单且便于管理数据库集群的平台。“PostgreSQL 同样存在大致相同的时间,但那时他们的目标不同,并没有提供真正的多数据库方案或主从复制架构。而 MySQL 从早期起就确立了这一思路,并在 2001 年建立了优秀的复制机制。”

MySQL 由 MySQL AB 创立,这是一家瑞典公司,由两位瑞典人 David Axmark 与 Allan Larsson 以及一位芬兰人 Michael ‘Monty’ Widenius 共同创办。该名称取自 Monty 的女儿 My。最初,它使用了 Hughes Technologies 提供的 RDBMS mSQL,通过 mSQL 快速的低级(ISAM)例程连接数据表。发现这种方法速度不足后,公司构建了全新的 SQL 接口,但保留了 mSQL 的 API。从 2000 年 6 月起,MySQL 就以 GNU 通用公共许可证 (GPL) 的方式发布。

从早期起,MySQL 团队就鼓励用户和其他开发者提供意见。出生于俄罗斯的 Peter Zaitsev,此后成为开源数据库咨询公司 Percona 的联合创始人,他在 1999 年以一名年轻企业家和工程师的身份就开始参与 MySQL,随后于 2002 年加入该公司。

“我是 MySQL 3.23 的早期采用者之一,当时充斥着许多 bug。我常在邮件列表中花费大量时间将这些 bug 报告出来,不断‘骚扰’ Monty。也正因如此,我们建立了很好的关系。”

“那时我身处俄罗斯,作为一个希望开发类似 Google Analytics 的网页统计应用的企业家,显然我需要一个数据库。大学的一位老师建议说:‘何不试试 MySQL?’他随后向我展示了在 PostgreSQL 与 MySQL 上运行同一查询的对比结果,在 MySQL 上查询速度竟快了三倍,这让我觉得太酷了。”

尽管 MySQL 拥有 Zaitsev 所期望的性能,但这款初出茅庐的开源数据库并非没有问题。对于这一点,背后公司的态度令他印象深刻。

在互联网泡沫的热潮及随后的崩盘后,Zaitsev 发现自己迫切需要一份工作。他回忆道:“我有点耍了小聪明,我发邮件给 Monty 请求推荐,希望他能给我提供一份工作。结果他真的给我机会了。”

当时,MySQL 还是一个大约由 40 人组成的小团队,成员主要是工程师。Zaitsev 说,公司充满理念,管理层承诺绝不会由销售人员来主导。最终,他领导了高性能 MySQL 团队,并于 2006 年离开,创办了 Percona,以支持该软件在美国 Web 2.0 部署中的应用。

几年后,Sun Microsystems 收购了 MySQL。当时,Sun 以高性能硬件、其 Solaris Unix 发行版以及面向对象编程语言 Java 而闻名。Java 也以各种方式成为了网络和在线服务转型的一部分。

Gartner 高级研究总监兼数据库分析师 Robin Schumacher 曾在 Sun 收购 MySQL 时为该公司工作。

Schumacher 向 The Register 解释道:“当时 Sun 的首席执行官 Jonathan Schwartz 在我们所有人参加的收购会议上谈到,如果花十亿美元买下 MySQL,他希望公司如何运作。他说:‘我最不想做的就是打乱你们的步伐或妨碍你们的发展。不论我们还有其他什么要求,你们都照样干你们正在做的事。’因此,我们即便处于大机构之中,依然能以小型创业团队的方式运作,既拥有创业团队的快速决策,也享有大企业的雄厚资源。”

Schumacher 继续说道:“当时的 Sun 并非数据库领域的老手,所以使用 MySQL 的用户并不担心 Sun 会遏制它的发展。当我踏上巡回讲学的道路,与各大政府机构交流时,他们的领导层走过来对我说:‘我们信任 Sun,现在我们也信任你。’这实际上大大促进了我们的收入增长以及客户扩展。”

但好景不长。2009 年,Oracle 以 56 亿美元收购了 Sun Microsystems。Oracle 本身在数据库领域有着深厚的根基,从 1970 年代末开始便通过普及关系型数据库系统重塑了市场。

MySQL 的倡导者对此忧虑颇深,这可以理解。每当有人部署这款开源数据库时,无疑都会让 Oracle 联合创始人 Larry Ellison 拟用于收购夏威夷群岛的资金减少一些。

玩笑归玩笑,围绕 Oracle 对 MySQL 监管权的担忧促使 Widenius 离开公司,并发起了一场旨在拯救 MySQL、“让互联网保持自由”的运动。

黎明时分的刀叉较量

他最终分支了 MySQL 代码,创建了 MariaDB 以及以这一新名称为核心的公司。MariaDB 在前首席执行官 Michael Howard 的领导下,于 2022 年末经历了一次灾难性的首次公开募股。经过数次起伏后,该公司在去年 9 月被私募股权公司 K1 Investment Management 收购,尽管据称它与自己的开源基金会关系更为紧密,并且依然为包括 Samsung 在内的旗舰客户所采用。

然而,Oracle 以代理方式收购 MySQL 的局面,可能并不如一些人所担心得那般糟糕。

Schumacher 表示:“我们必须公正看待 Oracle。如果你看看它对 MySQL 所做的改进,它不断在优化、不断在扩展,并持续提供基于它或构建在其之上的创新解决方案。二十年前与我在 MySQL 共事的许多工程领导如今依然在 Oracle 工作。在我看来,若 Oracle 在损害 MySQL,这些人早就不会继续留下了,因为他们都是开源及相关理念的坚定信徒。”

不过,Oracle 也有不少批评者。近几年,Big Red(即 Oracle)对基于 MySQL 构建的分析系统 Heatwave 的过度关注,引发了关于这一开源系统长期生命力的更多担忧。而其 9.0 版本则未能令部分业界观察者信服。

如今,在 DB-Engines 排行榜上,MySQL 是排名最高的开源数据库,该排行榜综合依据网站提及、 Google 搜索趋势、在线技术讨论、招聘广告、专业资料以及社交媒体信息等多种指标评定。总体而言,它仅次于 Oracle。同时,在 Stack Overflow 的专业开发者调查中,它也位列第二,仅落后于 PostgreSQL。值得一提的是,PostgreSQL 也已成为包括 YugabyteDB 和 CockroachDB 在内的分布式系统的准前端,并且还是 AWS、Google Cloud 以及 Microsoft Azure 提供的一款流行 DBaaS。

尽管面临 PostgreSQL 的挑战,MySQL 不太可能就此屈服。Schumacher 指出,Gartner 认为对开源系统的青睐正在不断上升。他说:“鉴于开源整体的精神和势头,再加上 MySQL 已成为大家心中开源数据库的代表,我觉得在可预见的将来,我们不会看到它消失。”

事实上,YouTube 基于 MySQL 构建了一个分布式系统,其产物 Vitess 如今被 Slack、Airbnb 和 GitHub 等采用。而为 Vitess 提供数据库服务的 PlanetScale,正致力于推动新一代基于网络的初创企业的发展。

无论 PostgreSQL 发起怎样的挑战,MySQL 在 LAMP 堆栈中的地位已为其历史铭刻了不可磨灭的印记。正是在这一堆栈的支持下,2000 年初以来社交媒体及消费类网站在全球迅速崛起。Schumacher 回忆起当时有位初创公司 CEO 曾表示,没有 MySQL,他的生意根本无法启动。

他补充道:“除了成本低廉,MySQL 还非常易用。由于不需要处理繁琐的许可协议,开发者可以直接下载软件,并在同一小时内上手使用,而无需经历漫长的采购流程,更不用与 Oracle 或 Microsoft 打交道。如今我们已习以为常,但必须记得,在那个年代,这样的便利根本不存在。”

无论 MySQL 帮助构建的这个始终在线的商业、政治和文化世界是否值得庆祝,这都留待他人去议论。无论你怎么看,一切都已无法回头。

来源:The Register

0赞

好文章,需要你的鼓励

2025

05/07

09:49

分享

点赞

邮件订阅