NoSQL 数据库 MongoDB 正式走向末路
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
科技巨头为何悄悄放弃这位 NoSQL 王者?你的公司,又在为复杂性付出多少代价?原文给出的数字是500万美元。 看看2026年那些顶尖科技公司的数据架构,你会发现一个值得留意的变化:它们已经不再热衷于炫耀自己横向分片的 MongoDB Atlas 集群。 相反,它们开始悄悄删除 Mongoose 模式定义,拆掉文档存储系统,重新走回关系型数据库的路线。 十多年来,MongoDB 一直是现代应用开发中备受追捧的数据库。MERN 技术栈的流行,加上硅谷的推崇,让一套说法深入人心:关系型数据库是过时的老古董,只有把数据都装进灵活的 JSON 文档里,开发才能足够快。如今,热潮退去,后遗症开始显现。越来越多团队发现,MongoDB 也可能变成一笔庞大、持续且难以摆脱的复杂性成本。 颇有意味的是,图灵奖得主、数据库先驱 Michael Stonebraker,早在十五年多前,就提醒过人们警惕这类架构陷阱。 警告:虚假的灵活性NoSQL 热潮最盛的时候,开发者对“无模式数据库”充满期待:不必提前考虑表结构、外键和迁移,只要把非结构化 JSON 放进集合,似乎就能直接开工。 Michael Stonebraker 对此持强烈批评态度。他在2010年发表于《Communications of the ACM》的文章中,讨论了放弃关系结构和 SQL 的问题。其批评可以概括为:
这恰好对应了 MongoDB 使用过程中容易出现的一类危机。 工程团队把用户、订单、发票、权限这些天然存在关联的业务数据,拆成一个个独立的 JSON 文档。当数据库没有承担相应的结构约束时,开发者就得在 Node.js 或 Python 中补上大量校验逻辑。等产品经理提出跨集合分析的需求,团队又可能撞上 原本应该在前期完成的结构设计,被换成了长期存在的应用层复杂性。而后者,往往贵得多。 声望税与大规模出走MongoDB 被推广为应对互联网规模非结构化数据的方案。但现实中,很多公司的数据并没有那么“非结构化”,只是把关系明确的业务记录,换成了 JSON 的外形。 一家成长中的初创公司采用 MongoDB Atlas,并不意味着它就获得了无限的开发敏捷性。有时,它只是为流行的技术选择付了溢价。随着数据增长,WiredTiger 索引的内存需求不断增加,云账单可能涨到每月数万美元。工程师则把大量迭代时间花在排查数据不一致上,而其中一些问题,本可以通过一条 SQL 这种担忧并非全无现实依据。原文列举了几家离开 MongoDB 的工程团队:
无模式幻想的隐性成本应用越成熟,这笔复杂性成本就越难忽视。 事实上,不存在真正不需要数据模式的应用。业务代码始终需要理解字段的类型、含义和关系。如果没有在数据库中明确实施这些约束,它们就会散落在应用代码里。假如一个开发者不小心把价格字段从 硬件开销也是问题的一部分。文档会重复存储字段名称,其存储结构与成熟关系引擎的紧凑行记录不同。在高写入负载下,具体的数据模型、压缩和索引设计,都可能让 I/O 与内存成本迅速增加。 一些基础设施团队因此开始重新整合工作负载,将它们放到经过充分优化的 PostgreSQL 部署中,采用裸金属服务器或专用实例,再借助 Percona Monitoring and Management(PMM) 等可观测性工具检查查询计划、调整内存缓冲区、优化磁盘 I/O。他们希望用更可控的基础设施成本,获得严格的 ACID 事务保障。 什么会取代王者?MongoDB 不会明天就消失。对于相对独立的产品目录,或者只需要快速验证、用完即可丢弃的黑客松原型,它依然有适用空间。 但把它当作现代初创公司的默认主数据库,已经越来越值得重新考虑。为了摆脱文档模型与关系型业务之间的摩擦,开发者正在关注两个方向:
启示MongoDB 缓解了第一天搭建数据库的阻力。但如果团队忽略了约束和数据治理,也可能在第一百天遇到更昂贵的问题:数据已经不再一致。 Stonebraker 的提醒值得重视。为了少写一条 2026年,真正值得关注的 CTO,或许不再是那些炫耀 NoSQL 分片集群的人,而是那些重新检查业务需求,并悄悄迁回 阅读原文:点击这里 该文章在 2026/10/24 11:55:16 编辑过 |
关键字查询
相关文章
正在查询... |