DynamoDB vs Amazon DocumentDB

两者都是全托管的 AWS NoSQL 数据库,但解决的是不同的问题。 DynamoDB 是无服务器的键值与文档存储;Amazon DocumentDB 是 一款 MongoDB 兼容的文档数据库。本页从事实层面对比它们,让你 在确定数据模型之前挑对合适的那个。

DynamoDB 和 DocumentDB 有什么区别?

DynamoDB 是无服务器的键值与文档数据库,没有服务器或 集群需要管理——你按请求量或预置容量扩展。 Amazon DocumentDB 是运行在实例集群(一个主实例加只读副本)上的 MongoDB 兼容文档数据库。DynamoDB 使用自己的 API; DocumentDB 讲 MongoDB API,因此现有的 MongoDB 应用、驱动和工具 都能对它工作。

DynamoDB vs Amazon DocumentDB 速览

特性DynamoDBAmazon DocumentDB
数据模型键值与文档(带类型属性的项目)文档(集合中的 JSON/BSON 文档)
查询 APIDynamoDB API(GetItemQueryScanPutItemUpdateItem)加 PartiQLMongoDB API——与你在 MongoDB 中使用的相同驱动、工具和 mongo/mongosh shell
最大记录大小每个项目 400 KB每个文档 16 MB(BSON,MongoDB 文档限制)
索引全局二级索引(GSI)和本地二级索引(LSI)MongoDB 风格的二级索引,包括复合索引
一致性默认最终一致性;可选强一致性读取;ACID 事务从主实例的读取为强一致;副本读取可为最终一致(读偏好);ACID 事务
扩展 / 预置无服务器——无实例或集群;按需或预置容量基于实例的集群(一个主实例加最多 15 个副本)或弹性集群;也提供无服务器实例类别
定价模型按请求付费(按需)或预置读/写容量,加存储按实例小时计算的计算费用,加 I/O 请求、存储和备份存储
最佳适配高扩展的键值与无服务器工作负载,访问模式已知AWS 上需要 MongoDB API 的现有 MongoDB 工作负载和文档应用

大小遵循各服务自己的文档。DynamoDB 以 二进制单位计量大小(1 KB = 1024 字节);DocumentDB 的 16 MB 数值 是标准的 MongoDB BSON 文档限制。

何时 DynamoDB 更合适

  • 你想要零基础设施管理。 DynamoDB 没有实例、 集群或副本需要调整规模、打补丁或故障切换——你创建一张表就能 读写它。容量要么按需(按请求付费),要么预置。
  • 你的工作负载是键值或单表且访问模式已知。 DynamoDB 奖励事先围绕查询做设计。参见 如何在 DynamoDB 中建模数据单表设计
  • 你需要在极高扩展下的可预测性能。 DynamoDB 提供 个位数毫秒的读写,且随流量增长保持平稳。
  • 你在 AWS 上构建无服务器应用。 DynamoDB 与 Lambda 和按请求付费天然契合,没有空闲实例成本。

何时 DocumentDB 更合适

  • 你已经在跑 MongoDB。 DocumentDB 兼容 MongoDB API,因此你 现有的驱动、工具和应用代码往往只需极小改动就能连接—— 很适合搬迁上 AWS。
  • 你需要大文档或丰富的临时查询。 DocumentDB 的 16 MB 文档限制远大于 DynamoDB 的 400 KB 项目,且 MongoDB 查询语言支持灵活的过滤和聚合,无需预先设计 每一个访问模式。
  • 你偏好文档优先的模型加熟悉的 API。 如果你的团队用 MongoDB 集合和文档而非分区/排序键来思考, DocumentDB 保留了那套心智模型。

两者都谈不上绝对"更好"——DynamoDB 用查询灵活性换取免运维的 无服务器扩展,而 DocumentDB 用无服务器的简洁换取 MongoDB 兼容性和更大、更灵活的文档。

使用 DynamoDB

一旦你选定 DynamoDB,DynoTable 是一款桌面 DynamoDB 客户端, 无需 AWS Console 即可浏览、编辑和查询你的表。它读取 你标准的 AWS 凭证,因此你的数据留在你的账户和 DynamoDB 中。

由于 DynamoDB 有自己的表达式语法,而非 SQL 或 MongoDB 查询语言,免费的 DynamoDB Expression Builder 帮你构建 正确的键条件、过滤表达式和更新表达式,并直接 复制进你的 SDK 代码。想在迁移前核算成本, DynamoDB 定价计算器 可估算 按需和预置容量的开销。

常见问题

DocumentDB 和 DynamoDB 是一回事吗? 不是。它们是两个独立的 AWS 数据库服务。DynamoDB 是无服务器的 键值与文档存储,有自己的 API,而 Amazon DocumentDB 是运行在 实例集群上的 MongoDB 兼容文档数据库。它们 不共享查询 API,在预置、扩展和定价上也不同。

DynamoDB 和 DocumentDB 哪个更便宜? 取决于工作负载,因此没有通用答案。DynamoDB 按 请求(按需)或按预置容量加存储计费,没有空闲 实例成本——对尖峰或低基线流量往往更便宜。DocumentDB 按 实例小时加 I/O、存储和备份计费,在规模适配的实例上, 对稳定、高吞吐量的工作负载可能更具成本效益。

DynamoDB 支持 MongoDB API 吗? 不支持。DynamoDB 使用自己的 API(GetItemQueryScanPutItemUpdateItem),也支持 PartiQL——一种 SQL 兼容查询语言。Amazon DocumentDB 才是提供 MongoDB API 兼容性的 AWS 服务。

相关内容

Last verified 2026-07-12 against the AWS DynamoDB and Amazon DocumentDB developer guides. Amazon DocumentDB 和 MongoDB 是各自所有者的商标, 此处引用仅用于标识。

无需控制台即可使用 DynamoDB

DynoTable 是面向 DynamoDB 的快速桌面客户端 —— 浏览表、运行 SQL 风格的查询,并在本地编辑项。