反范式(Denormalization)
缩写:无
简述
有意引入冗余或合并表,以换取读性能、简化查询或适配分布式边界。是对规范化设计的受控偏离,不是「随便重复字段」。
为何出现
严格范式下热点读路径 JOIN 过多,或跨库无法用外键 JOIN。
使用场景
读多写少列表页、报表宽表、CQRS 读模型、分片后的本地冗余。
组成与要点
冗余列、汇总表、宽表、缓存表;必须有一致的更新路径。
实践与应用
• 先量测 JOIN 成本再冗余。
• 写路径约定:同步更新、异步最终一致或重建任务。
• 冗余字段命名体现来源(如 user_name_snapshot)。
注意事项
• 无同步策略的冗余=定时炸数据。
• 多处真相源会引发对账成本。
对比与易混
| 范式化 | 反范式 | |
|---|---|---|
| 目标 | 减冗余 | 减连接提读 |
信号与度量
读延迟下降 vs 写复杂度与不一致事件率。
关联术语
• 范式:减冗余取向的对照
• 冗余:刻意保留的数据
• 缓存:另一种读加速