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
逻辑上:
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
相关文章推荐
- oracle 递归查询学习
- [转载Oracle官方中文博客]关于RunQ过高引起的latch等待问题
- Oracle 11g 闪回作业
- Oracle sqlldr 如何导入一个日期列
- Oracle数据库的安全性措施概述
- Oracle sql loader 导数据时添加序号的三种方法
- Oracle 的汉字排序问题
- TEC1303.Form个性化技术总结 - 第三部分 Custom.pll个性化技术讲解
- oracle查询数据库资源位置
- Oracle 常用函数
- Oracle Hints详解
- Oracle Hints详解
- Oracle数据库运维、备份常用指令
- Oracle命令(二):Oracle用户
- TEC1303.Form个性化技术总结 - 第二部分 Form个性化开发实例
- Oracle Drop表并未直接删除 drop table xx purge
- 【转】Oracle索引失效问题
- Oracle基础操作spool
- Oracle命令(一):Oracle登录
- ORACLE从共享池删除指定SQL的执行计划