ITPub博客

首页 > 数据库 > Oracle > 【TUNE_ORACLE】Oracle索引设计思想(一)索引片和匹配列概述

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

原创 Oracle 作者:Attack_on_Jager 时间:2021-02-22 17:00:43 0 删除 编辑

索引片和匹配列

先放图:

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


关于索引片的概念,使用广泛的描述是定义索引 匹配列的数量,如上图就只有id这一个匹配列,值的范围在11-20之间,因此索引片的大小也就确定了。


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

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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69992972/viewspace-2758230/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
在某银行任职DBA,拥有多年数据库运维经验,擅长Oracle,MySQL。尤其擅长Oracle的SQL优化,数据库性能调优,数据库备份、恢复与迁移。拥有的认证:OCM 12c,OCM 11g,MySQL OCP,RHCE,阿里云ACP,巨杉SCDP,软考系统集成工程师认证,Oracle Iaas OCA,OBCA,TDSQL认证,TBase认证

注册时间:2021-01-11

  • 博文量
    142
  • 访问量
    482812