Mysql——》范式

推荐链接:
    总结——》【Java】
    总结——》【Mysql】
    总结——》【Redis】
    总结——》【Kafka】
    总结——》【Spring】
    总结——》【SpringBoot】
    总结——》【MyBatis、MyBatis-Plus】

Mysql——》范式

  • 三范式
  • 范式化
  • 反范式化
  • 范式化 VS 反范式化
  • 总结

三范式

第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;
第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;
第三范式:3NF是对字段的冗余性约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。

范式化

优点:可以尽量得减少数据冗余,使得更新快,体积小
缺点:对于查询需要多个表进行关联,减少写得效率增加读得效率,更难进行索引优化

反范式化

优点:可以减少表得关联,可以更好得进行索引优化
缺点:数据冗余以及数据异常,数据得修改需要更多的成本

常见的反范式设计:缓存、冗余

范式化 VS 反范式化

不同点 范式化 反范式化
内存占用
更新操作
数据重复度
查询表关联
查询索引命中率

总结

三大范式只是一般设计数据库的基本理念,可以建立冗余较小、结构合理的数据库。如果有特殊情况,当然要特殊对待,数据库设计最重要的是看需求跟性能,需求>性能>表结构。所以不能一味的去追求范式建立数据库。

你可能感兴趣的:(mysql,范式,设计)