第1个回答 2019-09-30
1.
b-tree索引
oracle数据库中最常见的索引类型是b-tree索引,也就是b-树索引,以其同名的计算科学结构命名。create
index语句时,默认就是在创建b-tree索引。没有特别规定可用于任何情况。
2.
位图索引(bitmap
index)
位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有0和1的情况。
3.
基于函数的索引
比如经常对某个字段做查询的时候是带函数操作的,那么此时建一个函数索引就有价值了。
4.
分区索引和全局索引
这2个是用于分区表的时候。前者是分区内索引,后者是全表索引
5.
反向索引(reverse)
这个索引不常见,但是特定情况特别有效,比如一个varchar(5)位字段(员工编号)含值
(10001,10002,10033,10005,10016..)
这种情况默认索引分布过于密集,不能利用好服务器的并行
但是反向之后10001,20001,33001,50001,61001就有了一个很好的分布,能高效的利用好并行运算。
6.hash索引
hash索引可能是访问数据库中数据的最快方法,但它也有自身的缺点。集群键上不同值的数目必须在创建hash集群之前就要知道。需要在创建hash集群的时候指定这个值。使用hash索引必须要使用hash集群。