您的位置:首页 > 数据库 > Oracle

Oracle 索引的分类

2016-12-29 13:48 363 查看
看到 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 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: