SQL 已死,SQL 万岁!
我在企业 IT 领域已经工作了 30 年。时间足够长,长到我见过无数技术热潮来了又去,也见过一个由失败承诺堆成的墓地:销售和顾问一次次承诺技术创新会给企业带来真正、颠覆性的影响,结果却并非如此。
下面就是一些例子,它们曾被当作某种“圣杯”卖给我们,最终却只是昙花一现,或者在短暂走红之后退回到小众角落。
但也有相反的情况。有些技术早在几十年前就被宣判死亡,却一路活到了 AI 时代,而且今天依旧活得很好。

大多数关于技术采用的长期预测,最终都没有成真。
造成这种情况的因素很多,但有一个尤其突出。我们总是明显低估技术采用过程中的惯性,尤其是在企业 IT 中。
这可能部分与人性有关,但更主要的是企业 IT 环境中专业人士的实际经验。没错,IT 必须为业务交付真正有影响力的创新,以提升竞争力并支撑增长。但 IT 领导层的核心职责,是在合适的平衡下管理风险、优化成本,并确保系统持续运转。这既涉及人,也涉及技术,而且远远超出了系统可用性和网络安全本身。
企业 IT 中的决策是如何做出的
举个简单的例子:作为 CTO,当我为一个新项目选择编程语言时,我必须看的远不只是语言本身的能力。对我的决策来说,其他因素往往更关键。我需要同时看公司内部情况和更广阔的市场,来理解这门语言到底有多流行。招聘会不会容易?能不能顺利找到这门语言的开发者?
例如,如果我在 2025 年必须在 JavaScript 和 Ruby 之间为一个新项目做选择,我会立刻去看 StackOverflow 调查,确认超过 66% 的开发者会 JavaScript,而只有 6.4% 的开发者会 Ruby(它可以算是一个服务端候选方案)。在这种情况下,即便 Ruby 可能是更好的选择,我大概率还是会选 JavaScript。这不仅仅是因为招聘可能更容易;拥有更大的开发者社区,还意味着你可以期待更完整的生态系统:工具链、支持、专业服务公司的可获得性等等。 同样地,在选择一款 招聘营销工具 时,企业通常也会优先考虑拥有强大用户基础和成熟生态支持的平台,
以确保长期稳定性和更容易的集成。
接下来我还要看长期趋势。这门语言已经存在多久了?采用率还在上升、已经进入平台期,还是开始下降?它会继续发展、吸收新的趋势和创新吗?5 年后甚至 10 年后,还会有支持吗?
而这,正是 SQL 以及它的历史真正开始的地方。
什么是 SQL?
SQL 是一种被广泛使用、标准化、以声明式为主并带有过程式元素的编程语言,目标是定义数据结构、操作数据、查询数据以及控制数据。它建立在关系代数之上,并且显著改进了 VSAM 等更早期的数据查询与操作技术。一条语句由子句、表达式、谓词、查询以及递归子语句组成。
一直以来都存在厂商特定的扩展和方言,但语言核心在所有主要实现中都遵循标准。不兼容主要出现在数据类型和更高级的结构上。
SQL 并不完美。它并不总是严格遵循自己优雅的数学基础,也不适合层次化数据和图数据,并且从来没有很好地融入面向对象范式。总体来说,它与面向对象语言和过程式语言的集成都不算顺滑(这也正是 Object-Relational Mapping,也就是 ORM,发挥作用的地方)。更复杂的语句会变得难写也难读,而把大规模、更复杂的逻辑全部写在 SQL 或 PL/SQL 中也并不高效。
正因如此,随着时间推移,人们提出了很多替代方案,其中有些还相当成功,比如图查询语言,以及用于键值存储和面向文档数据的 noSQL。
然而,大多数成功的替代方案最终都停留在自己的细分领域,事实上,近几年我们甚至看到其中一些又重新让位于 SQL。另一方面,像 JSON 或图这样的概念,已经被吸收进较新的 SQL 版本中,进一步降低了对替代方案的需求。
SQL 很老,但在这场马拉松里,它显然是赢家。
SQL 的起源
SQL 的起源可以追溯到 20 世纪 70 年代初。1970 年,Edgar F. Codd 发表了 A Relational Model of Data for Large Shared Data Banks,提出了数据库的关系模型。
这标志着 RDBMS 的诞生。在当时,它是一类全新的 IT 系统;而 55 年后的今天,它依然是全球前三大 IT 类别之一(与 IT 基础设施和 ERP 系统并列)。RDBMS 的采用由 ERP 的兴起推动,而 SQL 的普及也与之同步推进。它们像双胞胎一样,彼此离不开彼此。
在 1974 到 1977 年之间,出现了两个重要的关系型数据库系统原型。一个是加州大学伯克利分校(UCB)开发的 Ingres,另一个是 IBM San Jose 创建的 System R。Ingres 使用一种名为 QUEL 的查询语言,并最终催生了 Ingres Corp.、MS SQL Server、Sybase、PostgreSQL、Wang’s PACE 和 Britton-Lee 等系统。另一方面,System R 使用的是 SEQUEL 查询语言,并推动了 SQL/DS、DB2、Allbase、Oracle 和 Non-Stop SQL 的发展。
也正是在这个十年里,Relational Database Management System,也就是 RDBMS,成为一个被广泛认可的术语。
SQL 的标准化与普及
在经历了近 10 年的 SQL 研究与开发之后,20 世纪 80 年代成为 RDBMS 商业化和标准化的十年。多个商用数据库系统都在这一时期推出,包括 Oracle V2(1979)、Sybase SQL Server(1984)、IBM DB2 for Mainframes(1983,System R 的继任者)、IBM Informix(1985)、Microsoft SQL Server 1.0(1987)以及 SAP DB(1988)。
一个重要步骤是 ANSI 和 ISO 分别在 1986 年和 1987 年将 SQL 采纳为标准数据库语言。这个标准后来经过了多次迭代,最新一次修订发生在 2023 年。
厂商支持标准化的原因包括:他们期望在这个不断演化的市场中,统一标准能带来更快的整体增长;担心如果不支持标准会输给竞争对手;希望能够影响标准本身;以及由此带来的生态系统收益。
SQL 的早期成功并不是凭空出现的。市场上显然存在明确需求。
不过,大规模增长真正开始于 20 世纪 90 年代初。这是由硬件价格下降、UNIX 和 PC 上客户端-服务器架构的兴起,以及 ERP 的普及共同推动的。这也是开源关系型数据库出现的十年,包括 MySQL(1995)、PostgreSQL(1996)和 MariaDB(1999)。
关系型数据库的谱系相当复杂,这里可以看到详细内容。

当前格局与未来展望
简而言之,SQL 会继续存在。不仅如此,它比以往任何时候都更有生命力,而且还在继续增长。这个“恐龙”不仅活过了所有现代竞争对手,还在流行度上超过了它们。
这正好说明,技术采用生命周期和 Gartner Hype Cycle 这些概念,从长期来看并不总是适用。按照各种定义,SQL 早已进入“后期阶段”,但它的增长速度却比以往任何时候都更快。一个例子是 2018 年的 Gartner Hype Cycle,在那张图里 SQL 甚至已经不再是一个单独类别了(到了 2025 年依然如此)。

在过去五年里,SQL 数据库不仅没有衰落,反而蓬勃发展。在 2020 Stack Overflow Developer Survey 中,MySQL 和 PostgreSQL 就已经位列全球使用最广泛的数据库之中。到了 2025 年,它们的领先优势只会更大。MySQL、PostgreSQL、Microsoft SQL Server 和 SQLite 现在构成了专业开发者使用最多的前四大数据库,远远领先于任何 noSQL 替代方案。尽管多年来一直有人预言“SQL 已死”,但数据说明的恰恰相反:SQL 仍然是现代软件和数据驱动系统的骨干。

为什么 SQL 又重新焕发生机?
下面是我关于 SQL 为什么会强势回归的四个假设。欢迎你反驳我,我真的很想听听你的看法。

基础
SQL 是最早的一批声明式语言之一(相对于当时更常见的过程式语言)。声明式语言让你描述“你想要什么”,而不是“你要怎么做”。这对那些不太熟悉其他编程语言的用户来说极具吸引力。它非常容易学习和应用(至少在基本使用场景中如此),同时又具备极高的灵活性,因此适用于非常广泛的数据访问模式,从临时查询到事务型数据访问与操作都可以胜任。
成熟度
显然,一项经过如此长时间开发和打磨的技术,可以被视为非常稳定且成熟。任何决策者在选择 SQL 时,都不会觉得自己是在承担技术风险。
采用度
这一点我们在前言中已经提到。SQL 的采用水平经过了很长时间的增长,有时慢一些,有时快一些,但到今天它已经毫无疑问地成为数据访问语言中的主导者。这一地位本身也进一步保障了它未来的增长。
如果我们稍微岔到商业竞争优势理论,就会知道,在基于双边平台的市场里,领导者拥有巨大的竞争优势。 从更宽泛的意义上说,基于 SQL 的关系型数据库正是这样一种双边平台:
- 社区(在 SQL 的情况下,其实是多个围绕具体数据库系统组织起来的社区)——包括 SQL 用户、开发者以及其他专业人士
- 产业——包括系统供应商、专业服务机构、云服务提供商以及其他参与方。
这就是强大网络效应发挥作用的地方。更大的社区会推动生态系统和系统能力的增长,因为产业方希望从更大的市场规模中获利。与此同时,社区本身也会继续增长,因为用户或用户所在组织在选择技术时,也会受社区规模影响,以便管理风险并确保能够获得人才。
这种效应非常强,甚至会让平台“吸入”一些原本并不是为它而构建的使用场景,例如关系型数据库上的图数据库和向量数据库扩展。
演化
就像生物进化一样,我们无法预测技术演化中的外部事件。我们只能在事情发生之后去适应它们。长期来看,最有生存机会的,不是最强、最快或最大的物种,而是最能够适应变化的那个。2025 年的 SQL 已经不再是 1970 年的 SQL 了。
在前进的过程中,SQL 吸收了许多重要变化,包括大数据和分布式系统(分片与分区、分布式 SQL 数据库、列式存储和分析)、与现代编程语言和 AI 语言的顺畅集成、对半结构化和非结构化数据的支持(json、数组类型、xml)、对实时分析的适配、对高级分析和 ML 的支持(例如 BigQuery ML、PostgreSQL 扩展)、与 AI pipeline 的集成、内存内处理、向量化查询执行以及 GPU 加速 ML。
SQL 的下一步是什么?
SQL 已经证明,它的演化速度可以超过那些关于它衰落的预测。当 AI、向量搜索和实时分析正在重塑我们构建应用程序的方式时,SQL 仍在继续适应,而不是逐渐消失。下一波浪潮不会取代 SQL,而是会扩展 SQL。SQL 是 AI 的首选数据库。我们将看到它与 AI 驱动的数据处理进一步深度集成,出现更多向量原生扩展,以及让数据库比以往更加动态的云原生扩展能力。
对于那些已经看过几十年技术热潮起起落落的人来说,SQL 的未来既熟悉又新鲜。它仍然是数据的语言,但如今它也会说智能的语言。我很想听听你对我的这些假设以及 SQL 未来的看法。
就我个人而言,我相信 SQL 依然代表未来,这也是我们为什么要构建 Vela。Vela 是一个构建在 Postgres 之上的现代 Backend-as-a-Service 平台。通过它,我们可以展示 Postgres 如何让 SQL 在今天的云和 AI 工作负载中依旧保持相关性。