为何加索引后反而更慢

一个大表(约3千万数据量)有个status字段,只有不同的几个值。我在这个字段加了索引,结果执行计划仍是全表扫描,但是执行时间比之前没加索引的全表扫描更加慢了!!!这是为什么了,执行计划没有用到索引而是全表扫描,这个好理解,因为status上不同值占总数据量的比列很小,用索引显然是需要更高的代价,所以选择了全表扫描。。。。

这里同样的是全表扫描,加索引后更加慢的原因,我是这样理解的:因为加了索引后,在解析的时候oracle就要计算全表扫描和索引扫描的代价,然后选出代价更小的执行计划,加了索引,oracle就有选择的余地,就会进行计算比较,解析时间的差异是变得更慢的原因!!!所以对于这些显而易见不用加索引的列就不要加索引了,避免造成解析时间的消耗。。。。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值