MySQL中数据库范式设计与反范式设计的利弊

[ MySQL ] 2020-05-05 14:04:33 杨歆 321

MySQL范式与反范式

范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、鲍依斯-科得范式BCNF(BC范式)、第四范式(4NF)、第五范式(5NF)、DK范式(DKNF)、第六范式(6NF)

反范式:与范式所要求的正好相反,在反范式的设计模式,允许适当的数据的冗余,用这个冗余去取操作数据时间的缩短。也就是用空间来换取时间,把数据冗余在多个表中,当查询时可以减少或者是避免表之间的关联。

数据库范式设计

数据减少了重复性,只需要修改更少的数据,节省了存储空间和内存消耗。范式设计的表通常更小,可更好的放在内存中,所以执行操作会更快。

按照范式设计出来的表,范式等级越高设计出来的表就越多。表的数量越多,在查询数据时就要去多个表中查询数据,这样查询的时间要比在一个表中查询所使用的时间要高很多。也就是说设计数据库时所用的范式越高,对数据的操作性能就越低。所以在使用范式设计数据库时要根据具体的需求去权衡是否使用更高等级的数据库设计范式设计数据库表。范式设计数据库更难进行索引优化工作。

数据库反范式设计

反范式在查询时可以很好的减少表的关联查询,也可以更好的进行索引优化。

反范式存在数据冗余及删除更新数据时会造成表中一些有用的信息数据丢失,对数据的修改需要更多成本。

总结

完全的反范式数据库设计和完全的范式数据库设计都不是最好的,在进行数据库结构设计时应该结合范式和反范式综合运用来设计出符合需求的高性能数据库结构。

因此实际项目数据库设计时,要注意混合使用范式与反范式进行数据库设计。


支付宝支付
打赏
微信支付

联系我吧

有些人是会淡出你的生活的,有些人刻意不再联系,是因为你知道ta不需要你,或者从一开始就不是同一个初衷在一起度过,不主动联系很久也不见一次面,所有的感情也罢,都会败给时间和距离。因为时间是最无情,给你后悔的时刻却不会给你改过重来的机会。

位置

成都市 四川省 中国

联系电话

028-6406-0000

邮箱

y139w@163.com

企鹅

27572048

网址

https://www.weania.com