写完数据库江湖(三):PostgreSQL 总在旧秩序快失灵时被重新想起,因为它一直在给关系型续命,接下来就得进入数据库史里最容易被写成口号大战的一段。

因为一提 NoSQL,中文世界立刻会冒出两种简化叙事:

  • “关系型过时了”
  • “NoSQL 只是营销骗局”

这两句话都太轻。

更准确的写法是:

NoSQL 真正拆掉的,不是 SQL 语法,而是关系型数据库长期占据的那种单一正统想象。

也就是:

默认认为所有重要数据问题,最终都应被同一种秩序、同一种一致性哲学、同一种数据模型统治。

NoSQL 爆发,说明这套想象开始不够用了。

不是突然不优雅了。

而是现实先撑不住了。


01|NoSQL 爆发的真实背景,不是大家突然厌倦 SQL,而是 Web 规模把旧默认值压到了边界

NoSQL 从来不是从真空里冒出来的。

它背后的现实压力非常具体:

  • 数据量在涨
  • 写入并发在涨
  • 跨机房、跨地域问题在涨
  • 半结构化数据越来越多
  • 网站和应用的交互形态越来越不像传统企业系统

这意味着,过去那套“单库 + 关系模型 + 强事务默认”的世界观,开始在一些场景里显得越来越贵。

这里的“贵”,不只是钱。

更是:

  • 延迟很贵
  • 扩展很贵
  • 运维很贵
  • 心智负担很贵

尤其到了互联网平台型公司手里,这种“贵”会被放大。

因为当你面向的是:

  • 海量用户
  • 持续在线系统
  • 大规模读写
  • 频繁变动的数据结构

你很难再自然相信:

所有问题都应该先被塞回一套强约束、统一模式、事务优先的数据库秩序里。

NoSQL 之所以成立,首先不是因为它更酷。

而是因为很多人第一次公开承认:

旧默认值并不适合所有场景。


02|BigtableDynamo 这些论文真正改变的,不只是产品路线,而是工程界可接受的代价表

NoSQL 时代绕不开几篇公开材料。

特别是:

  • Bigtable
  • Dynamo

它们重要,不只是因为后来有很多产品模仿。

更因为它们公开改写了行业里一张很关键的表:

什么代价是可以接受的。

过去很多团队默认觉得:

  • 一致性掉了,就是大事
  • 模型不统一,就是退步
  • 查询不灵活,就是缺陷

可当大规模平台系统开始把另一套现实摊开来讲,风向就变了。

新的重点变成:

  • 在海量机器上能不能继续活着
  • 节点挂掉时能不能继续服务
  • 数据是否必须立刻一致,还是能分层讨论
  • 某些场景里,模型灵活性能不能比规范化更重要

也就是说,这些论文没有简单宣布“关系型错了”。

它们做的事更像是:

把旧秩序一直试图隐藏的物理代价,重新摊到桌面上。

一旦物理代价被公开讨论,单一哲学就会松动。


03|NoSQL 不是一个阵营,而是一群不同类型数据库对不同成本的拆分回应

再强调一次,NoSQL 最大的问题之一,就是这个名字太容易让人误会它是统一战线。

其实不是。

它下面混着很多完全不同的路线:

  • 文档数据库
  • 键值数据库
  • 列族数据库
  • 图数据库
  • 内存数据库 / 缓存系统

这些路线解决的也不是同一件事。

有的更看重:

  • 模型灵活
  • 迭代速度

有的更看重:

  • 大规模可用性
  • 横向扩展

还有的更看重:

  • 极低延迟
  • 特定访问模式的极致优化

所以真正该写的,不是“NoSQL 胜过关系型”。

而是:

当数据库世界承认单一秩序不够时,不同产品开始各自替不同场景省不同的成本。

MongoDB 省的是文档模型与业务对象之间的摩擦。

Cassandra 省的是某些分布式场景下的可用性焦虑。

Redis 省的是延迟与简单访问模式的性能账。

这三种“省”,根本不是一种省。

它们唯一共同的地方,是都在反对“必须先回到同一套正统关系模型里处理”。


04|NoSQL 真正吸引人的,不只是扩展性,而是它把部分数据库权力重新交还给应用团队

关系型数据库强大的地方,在于它替你守住很多秩序。

但反过来说,

它也意味着很多决定不在应用团队自己手里。

NoSQL 的诱惑,很大一部分来自另一种心理:

如果数据库别替我做那么多决定,我是不是就能更快贴着业务现实前进?

这会体现在很多地方:

  • 模式不用一开始定死
  • 应用对象可以更直接落盘
  • 一部分一致性逻辑可以按业务场景自己拿捏
  • 某些数据结构不必强行翻译成关系模型

从开发者角度看,这非常有吸引力。

因为它意味着:

数据库不再总像一个站在上面的秩序制定者。

它可以退后一点,让应用团队自己决定更多事情。

但这不是免费礼物。

因为数据库退后一步,

往往就意味着应用要往前补一步。

你拿回来的,不只是灵活性。

还包括:

  • 更多边界判断
  • 更多一致性责任
  • 更多数据清洗和补丁
  • 更多“以后再治理”的冲动

所以 NoSQL 的本质,从来不是“更简单”。

而是:

把原本由数据库集中承担的一部分复杂度,拆散后重新分配给应用、平台和业务团队。


05|它最重要的制度后果,是让数据库行业再也不敢假装“one size fits all”

NoSQL 爆发之后,数据库史里发生了一个非常深的变化。

不是哪家产品市占率变了。

而是整个行业的公共心智变了。

从此之后,谁再说“一个数据库解决所有问题”,都会天然显得有点可疑。

因为大家已经被历史教育过一次:

不同数据类型、访问模式、规模压力、组织能力,确实会需要不同答案。

也就是说,NoSQL 最大的遗产甚至不完全在 NoSQL 产品本身。

它更大的遗产,是把多种存储协作、按场景选型、分层处理一致性这套思路,永久写进了行业常识。

在这个意义上,

NoSQL 拆掉的不是 SQL。

它拆掉的是:

关系型数据库曾经独享的“唯一正统”位置。


06|但 NoSQL 也没有终结旧秩序,它反而把数据库世界推向了更复杂的混合现实

很多人后来会说:

  • “NoSQL 失败了”
  • “最后大家还是回到 SQL”

这也不准确。

更贴近现实的说法是:

NoSQL 没有终结关系型数据库,它只是让数据库世界从单一正统,变成了长期混合。

从那以后,团队越来越常见的现实变成:

  • 主事务在关系库
  • 缓存放 Redis
  • 搜索放专门系统
  • 文档数据放 MongoDB 或别的文档库
  • 分析数据再进仓库或列式系统

这意味着数据库世界并没有变简单。

它只是把“所有复杂度压在一个系统里”改成了“复杂度拆给多个系统协作”。

这就是 NoSQL 留下的真正世界。

一个更灵活,也更分裂的世界。


今天遗产:为什么今天的团队已经默认接受“多种存储并存”这件事

NoSQL 的今天遗产非常明显:

  • 很少还有团队真的相信一种数据库能覆盖所有场景
  • 业务系统默认接受缓存、搜索、文档、消息流和主事务库并存
  • 工程师谈一致性时,越来越习惯按场景和成本说话,而不只按教科书说话
  • 许多新数据库产品不会再以“取代全部旧系统”为卖点,而会先强调“我负责其中一层”

也就是说,NoSQL 最终改变的,不只是技术栈。

它改变的是行业的现实主义程度。

从此以后,数据库世界很难再回到那种只有一种正统答案的年代。


小结

  • NoSQL 爆发的背景,不是大家突然讨厌 SQL,而是 Web 规模与分布式现实把旧默认值推到了边界。
  • BigtableDynamo 一类论文的重要性,在于它们公开改写了工程界对代价的接受方式。
  • NoSQL 不是统一阵营,而是不同类型数据库分别替不同场景省不同的成本。
  • 它最大的制度后果,不是取代关系型,而是永久拆掉了“one size fits all”的单一正统幻觉。

关键人物与组织速览

  • GoogleBigtable 这条线极大改写了外界对大规模存储的想象。
  • AmazonDynamo 把高可用与分布式现实的代价讲得非常直白。
  • MongoDB / Cassandra / Redis 等产品团队:它们分别把 NoSQL 的不同分支带进了现实市场。
  • 应用开发团队:真正让 NoSQL 成势的,不只是论文和厂商,而是那些愿意自己接过更多复杂度的业务团队。

参考与延伸阅读

  1. Bigtable: A Distributed Storage System for Structured Data
    https://research.google/pubs/pub27898/

  2. Dynamo: Amazon's Highly Available Key-value Store
    https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf

  3. Apache Cassandra Documentation - Architecture
    https://cassandra.apache.org/doc/latest/cassandra/architecture/

  4. MongoDB Manual - Data Modeling
    https://www.mongodb.com/docs/manual/data-modeling/

  5. Redis Documentation
    https://redis.io/docs/latest/

  6. MapReduce: Simplified Data Processing on Large Clusters
    https://research.google/pubs/mapreduce-simplified-data-processing-on-large-clusters/


下篇预告:当行业尝过多模、多库和应用侧兜底的代价之后,为什么又开始重新怀念 SQL、事务和那种熟悉得近乎保守的秩序感。