mysql数据库设计范式与反设计范式操作思考

数据库结构优化的目的

减少数据冗余,尽量避免数据维护中出现更新、插入和删除异常,节约数据存储空间。

数据库设计范式

第一范式:
1、数据表中的所有字段都只具有单一属性
2、单一属性的列是由基本的数据类型所构成的
3、设计出来的表都应该是简单的二维表
第二范式:
1、要求一个表中具有一个业务主键,也就是说符合第二范式的表中不能存在非主键列对部分主键的依赖关系
第三范式:
1、指每一个非主属性既不部分依赖

什么时候反范式化设计表

当关联表很多,例如4张以上,可以考虑进行反范式化冗余设计,让关联表数据减少,因为关联表越多,mysql性能也会下降。

范式化设计的优缺点

优点:
1、可以尽量的减少数据冗余
2、范式化的更新操作比反范式化更快
3、范式化的表通常比反范式化小
缺点:
1、对于查询需要对多个表进行关联(读性能没有反范式化高)
2、更难进行索引优化

反范式化设计的优缺点

优点:
1、可以减少表的关联操作
2、可以更好的进行索引优化
缺点:
1、存在数据冗余及数据维护异常
2、对数据的修改需要更多的成本

发布了57 篇原创文章 · 获赞 76 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/zhang5207892/article/details/79168130