知识卡片

数据库正规化与非正规化

专业/工作 · 912.o

内容

把所有字段塞进一张大表(像Excel那样)看似方便,实则埋雷:改一个部门名称要连带更新该部门所有员工的记录,搜索、统计都要在冗余列里反复扫描。正规化就是按照数据的从属关系把大表拆分成多张关联表,让”改部门名称”这类操作只需更新一处,代价是查询结果通常需要联表才能拿到完整信息,处理耗时可能变长。当业务场景以增删改为主时,正规化更高效;当业务场景基本只是查看搜索结果列表、几乎不增删改时,反过来把表合并回大表(非正规化)反而性能更好。这是一个经典的”写优化 vs 读优化”取舍,选择正规化程度本质上是在问:这张表未来主要是被改,还是被看?

参考来源

《图解数据科学》第2章《数据的基础》