Chapter 07 - Database
本章目标
看完本章后,你应该可以回答:
- RDS、Aurora、DynamoDB、ElastiCache、Redshift 怎么选?
- Multi-AZ 和 read replica 差在哪里?
- relational、NoSQL、cache、analytics 各自對应什么需求?
- SAA-C03 常见 database 题目怎么拆?
一句话
Database 选型不是看名字,而是看数据模型、读写模式、transaction、latency、scaling 和管理负担。
架构位置
Database 位于核心数据层,会直接影响 reliability、performance、cost 和 operational overhead。
常见服务与概念
- RDS
- Aurora
- DynamoDB
- ElastiCache
- Redshift
- RDS Multi-AZ
- Read replica
- Global database
- DAX
PM 视角
PM 要先厘清数据需求:是否 relational?是否需要 transaction?读多还是写多?全球用户读取吗?可以接受 eventual consistency 吗?报表分析是不是和线上交易混在一起?
Developer / DevOps 视角
工程师要能判斷 database bottleneck 是 availability、read scaling、write scaling、latency、schema flexibility,还是 analytics workload。
考试怎么问
常见题型会问:
- RDS 如何提高 availability
- read-heavy workload 如何 scale
- serverless key-value workload 用什么
- low latency cache 放哪里
- analytics query 不该打 production database 时怎么辦
常见陷阱
| 陷阱 | 正确方向 |
|---|---|
| Multi-AZ 当成读扩展 | Multi-AZ 偏 HA,read replica 才偏读扩展 |
| DynamoDB 当 relational database | DynamoDB 适合 key-value / document access pattern |
| cache 当 durable database | ElastiCache 是 performance layer,不是主要持久数据库 |
| Redshift 拿來 OLTP | Redshift 是 analytics / data warehouse |