索引列的选择

1.如果对于某个表中的某个字段使用了等式或范围谓语查询时,可以考虑将此列做为索引。

2.复合索引应该注意引导列的选择,如果在查询中,引导列选择不当,常常查询时此列经常不做为条件时,那么这样就会使得查询为全表扫描

3.有NULL值的列不宜添加索引,NULL本无实义,如果将有NULL列做为索引,那么在查询必然出现全表扫描,故常常作为索引的列需要添加NOT NULL声明,避免NULL的出现

4.谓语的基数也很重要,如果某列只有有限且可知的值时,那么此例不宜作为索引,例如:性别,是否类似的条件,状态,颜色,等等,可以这样假设,如果性别作为索引,那么就只有两个值,故不管是何值,在均匀分布的情况下都有50%的命中率,不能最大程度的缩小查询集。

5.如果能确定某字段某个值在某列中最少,在查询时宜采用些这个值作为查询条件,它可以最大程度的缩小结果集

6.根据实际业务的需要,选取拥有合适选择度的列作为索引

7.不宜将频繁修改的列作为索引,因为这样会增加对其增加,修改,删除的维护索引的成本

8.考虑索引列的长度很重要,如果索引列的长度很长,无疑增加了索引的尺寸,增加了undo和redo的区大小

9.在多列索引中,如果引导列只有很少的唯一值,换名话说就是 引导列很多值重复出现的概率很高,此时宜考虑将其修改为压缩索引

10.不要在谓语条件中对索引列使用函数,这样会使得索引失效

11.不要在大量修改的列上使用位图索引,这样会增加位图的索引的资源维护成本

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值