oracle索引匹配,【TUNE_ORACLE】Oracle索引设计思想(一)索引片和匹配列概述

索引片和匹配列

先放图:

0cbc132dfc44359ef67f972d4e3cbb19.png

注:如上图所示,给student表的id列创建一个索引,并且查询id在11-20区间的所有值(实际表中只有三个匹配的值)。

关于索引片的概念,使用广泛的描述是定义索引

匹配列的数量,如上图就只有id这一个匹配列,值的范围在11-20之间,因此索引片的大小也就确定了。

索引片(黄色区域)扫描方式是紧挨着顺序扫描的,但是索引指针对应的表数据的顺序很大概率却是乱序的,而访问路径的成本很大程度上是根据索引片的“厚度”(厚度就是谓词表达式确定的值的范围)决定的,所以索引片越厚,扫描的索引页就越多,需要处理的索引记录也就越多,开销也就越大,而其中最大的开销来自于回表的同步读操作,如上图的索引行的值在11-20区间,相应的表行会通过同步读的方式从表中读取。

假设where子句有第二个有索引的列,如果这两列的关联性越差(对于“关联性”,就是只用知道A列的值就能确定出B列的值,举个极端的例子就是A列的值全部一样,B列的值也全部一样,于是如果知道任意A列的值,B列的值就不用查就知道了,就表示A列和B列强关联,所以关联性越强,数据的重复率越高),过滤性就越强,那么这两个列能够一起定义的索引片也就越“薄”,对表的同步读次数也就越少,开销就越小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值