首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL 三十而立!廉颇老矣,尚能饭否?

今年5月,MySQL迎来了30岁生日。作为Web开发的基石,MySQL至今仍是广受欢迎的关系型数据库。

不过Oracle自2010 年以来一直是MySQL的管理者,可能会坚称MySQL是“世界上最受欢迎的数据库”。

具有讽刺意味的是,随着MySQL开始进入第四个10年,它早早地为自己播下了衰落的种子,尤其是相对于另一个开源数据库Postgres,正如Stack Overflow 和 DB-Engines 的受欢迎程度排名所表明的那样。

这并不是为了贬低 MySQL 的重要性,它过去是现在也是 Web 的关键基础设施。但它不再是开发人员在大多数情况下默认的数据库。

那么,这是怎么发生的呢?未来又会走向何方呢?

1.开源与易用,让MySQL曾无处不在

MySQL的起源故事植根于早期的开源运动。1995年,瑞典开发人员Michael “Monty” Widenius 作为内部项目创建了MySQL,并在不久后向公众发布。

到2000 年,MySQL已经完全开源(采用GPL许可),它的受欢迎程度呈爆炸式增长。多年来,MySQL一直是互联网的首选数据库,也是昂贵的商业系统的轻量级开源替代方案,它使在 Web 上构建应用变得容易,同时也推动了 LAMP(Linux、Apache、MySQL、PHP)堆栈的兴起。

作为LAMP 堆栈的数据库组件,MySQL 为 Web 开发人员提供了一个不可抗拒的组合:它免费、易于安装,使用简单,并且“足够好”地支持动态网站。

在一个由昂贵的专有数据库主导的时代,MySQL 的到来恰逢其时。2000年代的 Web 初创公司如Facebook、YouTube、Twitter、Flickr 和无数其他公司等都采用 MySQL数据库来存储用户数据和内容。MySQL 很快成为构建网站的代名词。

尽管进行了一些权衡,但早期的MySQL还是获得了关注。在发展的早期,MySQL 缺乏某些“企业”功能(如完全的SQL合规性或默认引擎中的事务),但这种简单性对许多用户来说是一个功能,而不是一个错误。

简单使 MySQL 的读取和简单查询速度极快,并且对于新手来说更容易管理。开发人员可以毫不费力地运行 MySQL 数据库,这与当时的 Oracle 甚至 PostgreSQL 等较重的系统形成鲜明对比。“很难与 easy 竞争!”。

到2000年代中期,MySQL 无处不在,并且功能越来越丰富,数据库产品(添加了 InnoDB,一个更强大的事务存储引擎)已经成熟,并继续随着Web爆炸式的发展。即使出现了更新的数据库,MySQL 仍然是数百万部署的默认选择,从小型企业应用程序到大型 Web 基础设施。

截至2025年,就安装量而言,MySQL可能仍然是全球部署最广泛的开源(或专有)数据库。大量应用是使用MySQL作为后备存储编写的,其中许多应用仍在积极使用中。

从这个意义上说,今天的MySQL有点像IBM DB2:一个拥有大量安装基础的主力数据库,即使它不再是最时尚的选择,但它也不会消失。

2.时来运转,MySQL迎来众多替代者

毋庸置疑,在过去10年中,MySQL 在开源数据库领域处于主导地位。同时也面临着更多的竞争者,包括传统对手Postgres,新加入的对手如MongoDB、Redis、Elasticsearch等。

随着时间的推移,使 MySQL 占据主导地位的因素开始限制它的发展。MySQL专注于简单性,使其易于学习,但难以发展。其宽松的早期设计帮助它快速传播,但也使其不适合现代、复杂的应用。

例如大量开发人员转向 MongoDB,以更灵活地构建 Web 和其他应用程序。但是,对于希望坚持使用SQL但需要比 MySQL 提供的更多功能的开发人员来说,Postgres 已成为“轻松的按钮”。

2005年的 Web 开发人员几乎可以将 MySQL 用于任何项目,而今天他们有大量针对特定需求量身定制的选择。

需要一个灵活的 JSON 文档存储来支持通用数据库需求?那么MongoDB 在招手。

构建实时分析还是全文搜索?Elasticsearch 可能更合适。

正在寻找内存缓存或高速数据结构存储?Redis 就是一个不错的选择。

即使在数据分析和数据仓库领域,Snowflake 、BigQuery 等云原生选项也已经得到广泛应用。

MySQL 的主导地位使其不如 PostgreSQL那样持续创新,PostgreSQL是一个不断缩小差距并增加新功能的数据库。

因此可以说,PostgreSQL可能是MySQL衰落的一面镜子。造成这种情况的原因既有技术上的,也有文化上的。Postgres 提供了MySQL 历史上没有的功能。其中包括:

首先,更丰富的SQL功能和标准合规性。PostgreSQL长期以来一直优先考虑SQL标准和高级功能,它支持复杂查询、窗口函数、公共表表达式、全文搜索和强大的 ACID(原子性、一致性、隔离性、持久性)事务,其中一些MySQL没有或后来才添加。

另外Postgres 可以处理复杂的企业级工作负载,而无需违反规则。

其次,可扩展性和灵活性。Postgres 具有高度可扩展性。您可以定义新的数据类型、索引类型,甚至可以用各种语言编写自定义扩展或存储过程。无论是GIS/地理空间数据 (PostGIS)、时间序列扩展,还是用于加密和 AI 用例的 pgcrypto 和 pgvector 扩展,Postgres 都可以根据需要进行变形。

这些可扩展性插件使 Postgres 始终处于领先地位,即使这些扩展可能为现代应用提供明显较差的性能。与 MySQL 更有限的插件模型相比,Postgres 的可扩展性仍然闪耀着光芒。

第三,开源、开放文化。MySQL和Postgres 都是开源的,但 PostgreSQL 的许可和治理更加宽松。Postgres 是一个真正的社区驱动型项目,由一个核心全球团队开发,并得到许多没有单一所有者的公司的支持。

相比之下,MySQL使用GPL(用于开放版本),并且多年来一直由 Oracle 拥有。Oracle 的管理是一把双刃剑。

一方面,Oracle 无疑对 MySQL 的开发进行了投资。当前的 MySQL 8.x 系列与 2000 年代的 MySQL 相去甚远。它是一个更强大、功能更丰富的数据库(在复制、安全性、GIS、JSON 支持等方面进行了改进),这在一定程度上要归功于 Oracle 的工程资源。

但是,另一方面对 MySQL 工程的严格控制,也改变了 MySQL 社区的发展,可以说减缓了其发展势头。

简而言之,PostgreSQL 让许多人相信,它比 MySQL 提供了更多“面向未来”的价值。

3.MySQL的生存或许将持久化

尽管存在不少挑战,但 MySQL 将与我们相伴很长很长一段时间。许多开发人员和组织有充分的理由坚持使用MySQL,即使替代方案不断涌现。

首先也是最重要的一点是 MySQL 的大规模可靠性记录。MySQL已经证明自己能够处理巨大的工作负载。世界上的 Facebook 和 Twitter 并没有超越 MySQL,而是通过定制工具和精心的工程设计使 MySQL 服务于其业务发展。

如果 MySQL 可以满足拥有数十亿用户的社交网络的数据需求,那么它可能会很好地处理企业的电子商务网站或内部应用程序。“这个血统很重要”。

其次,MySQL 仍然简单且为众多开发人员所熟悉。MySQL通常是新开发人员学习的第一个关系数据库,这要归功于它在教程和新兵训练营中的普遍性,以及与初学者友好型工具的集成。在许多情况下,开发人员不需要 PostgreSQL 的高级功能,而 MySQL 的占用空间更小(是的,有时对 SQL 语法很宽容)可以使开发感觉更快。

“MySQL 更简单”的旧观念仍然存在,即使 PostgreSQL 多年来提高了其易用性。这种熟悉会产生惰性:组织已经部署了MySQL DBA、MySQL 备份脚本和 MySQL 监控,转换起来是蛮困难的。

第三,生态系统的锁定。数以百计的流行 Web 应用程序和平台都构建在 MySQL(或其直接的表亲 MariaDB)之上。例如,为全球大部分网站提供支持的 WordPress 使用 MySQL/MariaDB 作为其数据库层。许多其他内容管理系统、电子商务平台和设备都依赖于 MySQL。这种根深蒂固的基础意味着 MySQL 在人们设置这些工具时会继续默认部署。

即使是云提供商,虽然他们积极地提供 PostgreSQL,但也提供完全托管的MySQL 服务(通常是与 MySQL 兼容的服务,如 Amazon Aurora)来满足需求。

简而言之,MySQL 深深嵌入到 Web 基础设施中,不会在一夜之间被撤销。

4.MySQL未来的走向

显然,MySQL 持续存在的原因也威胁到它未来的忠诚度。MySQL 的广泛遗留使用意味着它仍然具有相关性,但新项目越来越有可能选择其他东西,无论是 PostgreSQL、MongoDB、Redis,还是您喜欢的任何学数据库。

MySQL的风险在于,新一代开发人员可能根本不会对它产生相同的依恋。发展势头在技术社区中很重要:PostgreSQL 拥有它,MySQL 则不那么重要。

此外,如果 MySQL 没有跟上新的发展趋势,那么它迟早可能会看到忠实用户开始探索替代方案。例如,当开发人员开始关心 AI 应用的嵌入和向量搜索时,Postgres 使用 pgvector 找到了答案,MongoDB 添加了 Atlas Vector Search等。

直到最近,MySQL 才出现一些具有可比性的改变。MySQL 的持续发展对于保持忠诚度至关重要,这再次与 Oracle 和 MySQL 社区在未来几年如何引导项目发展方向有关。

在 MySQL 30 岁之际,我们应该庆祝这个开源数据库取得的令人难以置信的成就,很少有软件项目能对计算时代产生如此深远的影响。MySQL 使整整一代开发人员能够构建动态网站和应用,从而降低初创公司和开源项目的进入门槛。

MySQL 证明,开源基础设施可以与专有解决方案竞争,甚至超越专有解决方案,从而重塑数据库行业的经济状况。为此,MySQL 永远值得称赞。

MySQL 的辉煌岁月可能即将过去了,但它的故事远未结束。MySQL 激发并将继续激励 30 年的竞争和创新,数据库世界变得更好!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OxXrvecJloublpuy3_h0A-hg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券