当前位置:   article > 正文

Oracle B树索引原理及存储结构简析

oracle b树索引原理

尝试用最少的字数介绍oracle的几种常用索引原理,主要是想简单分析其存储结构来说明其检索方式,和解释为什们某种索引使用与某种场合。(数据结构中最简单的ArrayList和LinkedList的使用场景)。阐述原因只有一个,就是因为其存储结构决定的。

B树索引(默认类型)

存储结构:

B+树,不多描述。和其他几种关系数据库一样,就是根据索引列(一个或多个)来构造一个B+树来存储索引。非叶子节点两个区域:存储下级子节点的值的范围,和到对应子节点地址(典型B+树的结构),主要作用是导航;叶子节点存储索引的键值和行的ROWID。另外,索引的叶子节点间构成了一个双向链表。类似mysql的myisam引擎的辅助索引,也类似mssql的非聚集索引。

ad1d9e32bd2dda61227c3b186f9bbd59.gif

检索方式:

典型的平衡树的检索,栋根节点开始导航,选择下一个中间节点,直到找到对应的叶节点。需要说明的是,如果检索的所有列都在是索引中,则不用不用检索表,被称为Fast Full Index Scan;如果检索的列不都包含在索引中,则从树上找到索引列对应的key的叶子节点,需要根据其对应的ROWID,再次访问表,根据ROWID关联到其他属性。当Index Range Scan这种检索索引列的某个范围,则不用从根节点开始导航,直接选定开始的叶节点后,直接从叶节点的双向链表就

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/613475
推荐阅读
相关标签
  

闽ICP备14008679号