数据库对象的优化方法

31 篇文章 1 订阅

(1)合适的数据类型
(2)通过拆分提高表的访问效率
垂直拆分:比如一个表有些常用的列,有些不常用的列,可以做垂直拆分
优点:因为是垂直拆分,数据行变小,一个数据页能存放更多的数据,查询时减少IO次数。
缺点:列冗余,查询所有数据时需要表连接操作

水平拆分:根据一列或者多列数据的值进行拆分。
使用场景:
1、表很大,分割后可以降低在查询时需要读的数据和索引的页数,也降低了索引的层数,提高查询速度
2、表中的数据本来就有独立性,例如表中记录各个地区的数据或不同时期的数据,有些数据常用,有些不常用。
3、需要把数据存放在多个介质上面

比如移动电话账单表,近3个月的数据存在一个表里,3个月前的存在另一个表,超过1年的可以存储到单独的存储介质。

缺点:水平拆分会给应用增加复杂度,通常查询时需要多个表名,查询所有数据时需要union操作。

(3)逆规范化
主要用途是提高查询速度,比如通过增加冗余列,派生列,重新组表的方式,减少表的连接操作,但是缺点是可能出现数据完整性问题。
维护完整性常用方法,批处理维护,应用逻辑和触发器,
触发器是比较好用的方式,比如对数据的任何修改立即触发对复制列或者派生列的响应修改。

(4)使用中间表提高统计查询速度
优点:中间表复制源表部分数据,并且与源表相隔离,在中间表上做统计查询不会对在线应用产生负面影响。
中间表上可灵活添加索引或增加临时用的新字段,从而达到提高统计查询效率的作用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#慧#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值