索引的几种扫描方式

1、索引唯一扫描

  是针对唯一索引的扫描,它仅仅适用于where条件里是 等值查询的目标sql。因为扫描的对象是唯一性索引,索引唯一性扫描的结果最多返回一条记录

 

2、索引范围扫描

  适用于所有类型的B树索引。

  当扫描对象是唯一性索引时,此时目标sql的where条件一定是范围查询(谓词条件为 between 、<、>);

  当扫描对象是非唯一性索引时,此时目标sql的where条件没有限制(可以是等值,也可以是范围查询)

 

3、索引全扫描

  适用于所有类型的B树索引。

  要扫描目标索引所有叶子快的所有索引行。索引全扫描需要扫描目标索引的所有叶子快。

  oracle在做索引全扫描时只需要访问必要的分支块等位到该索引最左边的叶子快的第一行索引行,就可以利用该索引叶子块之间的双向指针链表,从左至右一次扫描叶子块的所有索引行

 

4、索引快速全扫描

  只适合于CBO

  可以单块读可以多快读

  结果集不一定是有序的。因为FFS 时 oracle根据索引行在磁盘上的 物理存储位置 扫描,而不是根据索引行的逻辑顺序扫描。因此结果不一定有序 

 

5、索引跳跃式扫描

  仅仅适用于那些目标索引前导列的distinct值数量较少、后续非前导列的可选择性有非常好的情形。因为索引跳跃式扫描的执行效率一定会随着目标索引前导列的distinct值数量的递增而递减

 

转载于:https://www.cnblogs.com/iyoume2008/p/6838421.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值