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

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

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

学习

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

更多

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

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
DynamoDB 入门/课时/DynamoDB vs MySQL
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综合练习

DynamoDB vs MySQL

选型;CodeRoadMap cf_track 留在 MySQL。

25 分钟

DynamoDB vs MySQL

选型不是「谁更好」,而是 访问模式、运维模型、团队技能 的匹配。CodeRoadMap 明确:MySQL cf_track 为权威,DynamoDB 为 AWS Serverless 实验补充。

学习目标

  • 从数据模型、查询、事务、成本四维度对比
  • 列出 DynamoDB 适合/不适合的业务
  • 巩固 cf_track 留 MySQL 的架构决策

核心内容

四维对比

维度MySQL(sql-essentials)DynamoDB
模型规范化表 + JOIN反规范化单表 + PK/SK
查询任意 SQL、ad-hoc 报表预设计 Query/GSI
事务多行 ACID、隔离级别TransactWriteItems(限 25 项)
扩展垂直扩展、读写分离、分库分区自动扩展
运维自建/RDS 补丁备份全托管 Serverless
成本实例固定 + 存储按请求/容量,Scan 贵

cf_track 为何留 MySQL

-- 典型权威查询:多表 JOIN + 排序 + 分页
SELECT t.slug, t.title, COUNT(l.id) AS lesson_count
FROM cf_track t
LEFT JOIN cf_lesson l ON l.track_id = t.id
WHERE t.published = 1
GROUP BY t.id
ORDER BY t.updated_at DESC
LIMIT 20 OFFSET 0;

DynamoDB 无 JOIN/GROUP BY;镜像到 DynamoDB 需 预聚合 + 多 GSI,维护成本高,且与 JPA/orm-essentials 栈不一致。

何时引入 DynamoDB

场景推荐
课程列表、订单、用户账号MySQL
Serverless 实验 API、会话、进度缓存DynamoDB
灵活文档、评论日志MongoDB(mongodb-essentials)
复杂报表、BIPostgreSQL 只读(postgresql-essentials)
纯 AWS Lambda 微服务DynamoDB + aws-essentials

混合架构

Spring Boot 单体
  ├─ JPA → MySQL(cf_track、cf_lesson、cf_user)
  └─ DynamoDbEnhancedClient → UserProgress(实验/高 QPS)

未来 Serverless 分支
  API Gateway → Lambda → DynamoDB(不迁移 cf_track)

练习

  • 为「用户课时进度」分别写 MySQL 表结构与 DynamoDB PK/SK
  • 列出 3 个必须用 MySQL 的 cf_* 查询场景
  • 写 200 字:DynamoDB 适合 CodeRoadMap 的哪一块实验
  • 小结

    MySQL 管权威关系数据与报表;DynamoDB 管 AWS 侧高并发键值。cf_track 不换。 下一课综合练习。

    加载本节练习…
    ← 上一课时序库对照下一课 →综合练习