CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
DynamoDB 入门/课时/容量模式
RawBlame
课时目录12 节

DynamoDB 入门

  1. 01DynamoDB 是什么
  2. 02数据模型
  3. 03分区键与排序键
  4. 04CRUD 与条件写
  5. 05GSI 与 LSI
  6. 06Query 与 Scan
  7. 07DynamoDB Streams
  8. 08Spring 集成
  9. 09容量模式
  10. 10时序库对照
  11. 11DynamoDB vs MySQL
  12. 12综合练习

容量模式

On-Demand vs Provisioned、RCU/WCU。

25 分钟

容量模式

DynamoDB 按 读写容量单位(RCU/WCU) 或 On-Demand 请求数 计费。选对模式直接影响成本与是否需要容量规划。

学习目标

  • 理解 RCU/WCU 计量方式
  • 对比 On-Demand 与 Provisioned(含 Auto Scaling)
  • 结合 aws-essentials 成本意识做实验选型

核心内容

容量单位

单位定义(简化)
1 RCU每秒 1 次强一致读,Item ≤ 4 KB
1 WCU每秒 1 次写,Item ≤ 1 KB
超出节流 ProvisionedThroughputExceededException

大 Item 按 4 KB/1 KB 块向上取整计费。

On-Demand vs Provisioned

On-DemandProvisioned + Auto Scaling
计费按实际请求预购 RCU/WCU
适用流量不可预测、实验稳定可预测负载
运维零容量规划需设 min/max/target
成本单价高、无闲置可更省(稳态)
# 切换为 On-Demand(实验推荐)
aws dynamodb update-table \
  --table-name UserProgress \
  --billing-mode PAY_PER_REQUEST

CodeRoadMap 实验表建议 On-Demand,避免忘记删表产生 Provisioned 闲置费。

优化读写成本

  • Query 代替 Scan:Scan 读全表分区
  • 投影 GSI:INCLUDE 减少返回体积
  • 批量:BatchGetItem / BatchWriteItem(最多 25 项)
  • Eventually Consistent Read:耗 RCU 减半(默认)
// 批量写入
BatchWriteItemRequest batch = BatchWriteItemRequest.builder()
    .requestItems(Map.of("UserProgress", List.of(
        WriteRequest.builder().putRequest(PutRequest.builder()
            .item(item1).build()).build(),
        WriteRequest.builder().putRequest(PutRequest.builder()
            .item(item2).build()).build()
    )))
    .build();

对照 MySQL:RDS 按实例规格计费,与查询模式弱相关;DynamoDB 访问模式即账单。

练习

  • 在控制台查看 UserProgress consumed RCU/WCU 指标
  • 估算:1000 用户各 Query 20 条 2 KB Item,需多少 RCU(强一致)
  • 说明实验环境为何选 On-Demand 而非 Provisioned
  • 小结

    On-Demand 适合实验与突发;Provisioned 适合稳态;Query 优于 Scan 是省钱第一法则。 下一课时序库对照。

    加载本节练习…
    ← 上一课Spring 集成下一课 →时序库对照