参考文档:https://wenku.baidu.com/view/d4d6ee1ba76e58fafab00336.html
https://blog.csdn.net/u010719917/article/details/12192387
https://baike.baidu.com/item/B-tree/6606402#5
oracle索引分为:b*tree索引(b树索引),bitmap索引(位图索引),反向索引,降序索引,函数索引
*)b*tree索引
b是指balance。几乎所有的关系型数据库(比如MySQL、informix)都有b*tree索引,也就是“普通索引”。普通索引的结构是b*tree数据结构算法,索引类似目录,目录嘛,本来就是类似树的结构。
b*tree:多路搜索树,类似二叉树,但每个节点可以有多个子节点。
有b+tree和b-tree。B+和B-(即B)是因为每个结点上的关键字不同。一个多一个,一个少一个。
**)使用:b*tree索引是最常使用的。
*)bitmap索引
位图索引适用于:列的唯一值除以行数为一个很小的值,接近0。通常是性别这样的字段。比如:性别的值有Male,female,null 三种,但这个表有300W条记录,3/300W≈0。这种情况下最适合用位图索引。
*)反向索引
反转了b*tree索引码中的字节,使索引条目分配更均匀,多用于并行服务器环境下,用于减少索引叶的竞争。
*)降序索引
b*tree索引的延伸:数据库列的值在索引树中的排序从升序变成了降序,在某些情况下将会产生作用。