数据库:反规范化

        移动电话的用户每月都会查询自己的账单,账单信息一般包含用户的名字和本月消费的总额,设想一下,如果用户的姓名和属性信息存放到在一个表中,假设表名为A,而用户的编号和他对应的账单信息存放在另一个表B中,那么,用户每次查询自己的月账单时,数据库查询时都要进行表连接,因为账单B并不包含用户的名字,所以必须通过关联A表取过来,如果在数据库设计时考虑到这一点,就可以在B表增加一个冗余字段存放用户的名字,这样在查询账单时就不用再做表关联,可以使查询有更好的性能。

        反规范的好处是降低连接操作的需求、降低外码和索引的数目,还可能减少表的数目,相应带来的问题是可能出现数据完整性的问题。加快查询速度,但会降低修改速度。因此决定做反规范时,一定要权衡利弊,仔细分析应用的数据存取需求和实际的性能特点,好的索引和其他的方法经常能够解决性能问题,而不必采用反规范这种方法。

        在反规范之前,要充分分析考虑数据的存取需求、常用表的大小,一些特殊的计算、数据的物理存储位置等。常用的反规范技术有,增加冗余列、增加派生列、重新组表和分割表。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值