Oracle 索引的分类

来源:互联网 发布:gimgoon戏耍淘宝权 编辑:程序博客网 时间:2024/06/05 03:48
看到 itpub 论坛上的一个帖子,对 Oracle 的索引分类总结得言简意赅,于是收藏过来。又补充了一点RAC用到的反向索引的东西。

逻辑上: 
Single column 单列索引
Concatenated 多列索引
Unique 唯一索引
NonUnique 非唯一索引
Function-based函数索引
Domain 域索引 

物理上: 
Partitioned 分区索引
NonPartitioned 非分区索引
B-tree:
Normal 正常型B树
Rever Key 反转型B树 
Bitmap 位图索引

索引结构:

B-tree:
适合于大量的增、删、改(OLTP);
不能用包含OR操作符的查询;
适合高基数的列(唯一值多)
典型的树状结构;
每个结点都是数据块;
大多都是物理上一层、两层或三层不定,逻辑上三层;
叶子块数据是排序的,从左向右递增;
在分支块和根块中放的是索引的范围;

Bitmap: 
适合于决策支持系统;
做UPDATE代价非常高;
非常适合OR操作符的查询; 
基数比较少的时候才能建位图索引;
树型结构:
索引头 
开始ROWID,结束ROWID(先列出索引的最大范围)
BITMAP 每一个BIT对应着一个ROWID,它的值是1还是0,如果是1,表示着BIT对应的ROWID有值;


反向 B-tree: 
适用于 OPS 或 RAC 环境;
反转了索引码中每列的字节,降低索引叶块的争用;
参考 http://www.stcore.com/oracle/2006-06-15/1150309026d27150.html
 

0 0
原创粉丝点击