【MySQL】范式和反范式

范式化的数据库中,每个试试数据会初选并且只出现一次。
反范式化的数据库中,信息是冗余的,可能会存储在多个地方。

范式的优点和缺点

为了提高性能,经常对schema进行范式化设计,尤其是写密集的场景。

范式的优点:

  • 范式化的更新操作通常比反范式化要快
  • 当数据较好的范式化时,就只有很少甚至没有重复数据,所以只需要修改更少的数据。
  • 范式化的表通常更小,可以更好的放在内存里,所以执行操作会更快。
  • 很少有多余的数据,意味着检索列数据时,更少的需要DISTINCT和GROUP BY。

范式的缺点:

  • 通常需要关联。稍微复杂一些的查询语句在符合范式的schema上都可能至少一次关联,甚至更多。
  • 关联时肯呢个使一些索引策略失效

反范式的优点

反范式的优点

  • 数据都在一张表中,很好的避免关联:
    范式索引会在一个索引中又排序又过滤(另一个表作为过滤条件),如果目的数量少且分散,效率就会很低。而在一个表中增加一个索引,效率就会很高效。

混用范式化和反范式化

完全的范式化和完全的反范式化schema都是实验室才有的,在实际应用中经常需要混用,

  • 最常见的反范式化数据时复制或者缓存,在不通的表中存储相同的特定列(可以使用触发器更新缓存知,使方案更简单)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值