DynamoDB 是什么
托管 NoSQL、Serverless;本站 MySQL 仍为权威。
30 分钟
DynamoDB 是什么
Amazon DynamoDB 是 AWS 托管的 Serverless NoSQL 键值/文档 数据库,按请求计费、自动扩缩容。它与 MySQL 不是替代关系,而是 不同访问模式与运维模型的选型。
学习目标
- 理解 DynamoDB 与关系库、MongoDB 的定位差异
- 知道 Serverless 数据层的典型适用场景
- 明确 CodeRoadMap 仍以 MySQL
cf_track为权威数据源
核心内容
DynamoDB vs 其他数据库
| DynamoDB | MySQL(sql-essentials) | MongoDB(mongodb-essentials) | |
|---|---|---|---|
| 部署 | AWS 全托管 | 自建/RDS | 自建/Atlas |
| 模型 | Item + PK/SK | 行 + 表 + JOIN | 文档 Collection |
| 查询 | 按主键/索引 Query | 任意 SQL | MQL find/aggregate |
| 扩展 | 分区水平扩展 | 垂直/分库分表 | 分片集群 |
// DynamoDB Item 示例(UserProgress)
{
"PK": "USER#u_1001",
"SK": "LESSON#mongo-crud",
"trackSlug": "mongodb-essentials",
"action": "complete",
"updatedAt": "2026-03-01T10:00:00Z"
}
MySQL 中同等数据在 cf_track / cf_lesson / 进度表多表关联;MongoDB 可单文档嵌套,DynamoDB 则靠 PK/SK 设计 表达关系。
适用场景
- 高并发键值访问:会话、购物车、游戏状态
- AWS Serverless 栈:Lambda + API Gateway + DynamoDB(见 aws-essentials)
- 可预测访问模式:已知查询路径,用 GSI 支撑(见 ddb-gsi)
不适合:复杂 ad-hoc 报表、多表 JOIN 分析(postgresql-essentials + SQL 更合适)。
在本站架构里
platform → Spring Boot → MySQL(cf_track、cf_lesson 等权威数据)
↓
DynamoDB(可选,Serverless 实验/高并发进度缓存)
schema.sql 中 cf_track 存课程元数据;本 track 教你 何时、如何 在 AWS 侧引入 DynamoDB,而非替换主库。
练习
- 在 AWS 控制台搜索 DynamoDB,浏览表列表与 Region 选择