外观
运转与演进
表建好之后的事:数据怎么写进去、缓存里放了什么、跑到什么规模、schema 怎么改。
改写入路径、排查慢查询与库膨胀、上线 schema 变更之前读这一段。静态的列定义在表定义,建模依据在建模决策。
四页
| 文档 | 什么时候读 | 内容 |
|---|---|---|
| 写入路径 | 改任何写库的代码之前 | materialize 与上报摄入两条路径、差分写、预提取、写入方一览 |
| KV 与缓存键索引 | 新增缓存键、排查缓存不一致 | Valkey 与 Redis 中的每一个键:TTL、写入方、丢失后果、降级行为 |
| 性能与容量 | 库变慢、评估扩展 | 实测规模与增长维度、写热点、索引行为、死元组、扩展阈值 |
| 迁移与演进 | 改 ORM、上线 schema 变更 | create_all 与 Alembic、生产实况、已知偏差、分区化、迁移链 |
两条贯穿这一段的事实
写入分两条纪律相反的路径。 管理写路径要求强一致——单事务、行锁、schema 校验,失败整体回滚;上报摄入路径要求快——单轮失败仅记日志,下一轮自然补齐。判断一段写库代码该遵哪条,见写入路径。
生产库由 create_all 建立,不是由迁移链建立。 因此库中残留着已从 ORM 移除的空表,也存在迁移链与实际 schema 的已知偏差。动 schema 前先读迁移与演进,操作步骤在数据库迁移。