范式
第一范式
排除 重复组 的出现,因此要求数据库的每个列的值域都由原子值组成;每个字段的值都只能是单一值
第二范式
表中必须存在业务主键,并且非主键依赖于全部业务主键。
第三范式
表中的非主键列之间不能相互依赖
反范式
反范式的过程就是通过冗余数据来提高查询性能,但冗余数据会牺牲数据一致性
范式:
优点:
范式化的更新通常比反范式要快
当数据较好的范式化后,很少或者没有重复的数据
范式化的数据比较小,可以放在内存中,操作比较快
缺点:
通常需要进行关联
反范式:
优点:
所有的数据都在同一张表中,可以避免关联
可以设计有效的索引
缺点:
表格内的冗余较多,删除数据时候会造成表有些有用的信息丢失
注意点:
在企业中很好能做到严格意义上的范式或者反范式,一般需要混合使用
如:
1、另一个从父表冗余一些数据到子表的理由是排序的需要。
2、缓存衍生值也是有用的。如果需要显示每个用户发了多少消息(类似论坛的),可以每次执行一个昂贵的自查询来计算并显示它;也可以在user表中建一个num_messages列,每当用户发新消息时更新这个值。
范式设计:
反范式设计:
文章转载自懒人实录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
3297次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
907次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
535次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
457次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
383次阅读
2025-04-15 14:48:05
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
351次阅读
2025-04-30 17:37:37
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
303次阅读
2025-04-15 15:27:53
SQL优化 - explain查看SQL执行计划(下)
金同学
297次阅读
2025-05-06 14:40:00
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
293次阅读
2025-04-28 11:01:25
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
291次阅读
2025-04-30 12:17:54