-
前言
- 大型系统永远不是第一次设计最正确
- 数据结构会变,这件事要工程化面对
-
DB schema evolution 原则
- 前向兼容
- 后向兼容
- additive only(add 不 break)
-
表结构变更策略
- online ddl
- shadow table
- dual write
- 写新表读旧表 / 双读策略
-
索引变更策略
- 如何安全添加索引
- 如何安全 drop 索引
- 索引变更对 RT 影响评估
-
JSON column / wide table / columnar table 选择
-
表版本化治理
- meta version table
- schema registry
- publish-subscribe schema变更消息
-
案例:订单表,新增
business_type字段
分 5 stage rollout,整个过程不停机 -
总结
- DB 演进不是 DBA 的事
- 是整个后端工程成熟度基石