oracle 索引的基础知识(一)

oracle 索引的基础知识(一)
 
索引主要分为以下五种类型:
 
1、b*tree索引,这种索引的树结构与二叉树比较相似,b*tree索引是基于二叉树的,

由分支块(branch block)和叶子块(leaf block)组成,位于最底层的被称为也块,这些块上包含

索引列的值和行所对应的rowid,分支块用来做导航,包含了索引列的范围值和另一索引块的地址信息;

b*tree中的b是balance的意思。
 
创建语句:create index index_name on table_name(col1,col2...);
 
应用场合:多用于OTLP系统;
 
2、反向索引(reversed key index),这种索引其实就是上述索引的反转,是索引条目更加均匀,

多用于并行服务器,以减少索引也块的争用,缺点是不能在使用常规索引的地方使用,

并且在范围搜索中不能被用。但是它的出现,具有以下优点:

解决了树 倾斜问题;将索引值反向后,新生成的值将非常离散,分散在不同的块中,

这能防止硬盘在某个区域操作过于频繁,引起热点问题;
 
创建语句:create index index_name on table_name(col1,col2...)  reverse;
 
应用场合:不适合做范围扫描,在特殊的场合下应用能减少块的争用;
 
3、降序索引。即将索引的值按照desc排序规则来生成,能提高降序查询!
 
创建语句:create index index_name on table_index(col1 desc,...);
 
应用场合:很明显应用在有降序查询的语句中;
 
4、位图索引。多用于OLAP系统,这种索引最好用在cardinality比较低的列,例如性别、组织机构等列。
 
创建语句:create BITMAP index index_name on table_name(col1,col2...);
 
应用场合:应用在OLAP和DSS系统中,在低cardinality的列中较为常用,DML过于频繁的语句中不应使用;
 
5、函数索引。使用函数索引有以下几个要注意的地方:

必须拥有query rewrite或global query rewrite权限;

必须使用基于成本的优化器,基于规则的优化器将被忽略;

query_rewrite_enabled=true 和query_rewrite_intigrity=trusted

这个可以用过show parameter 来查看;
 
创建语句:create index index_name on table_name(function(col1));
 
应用场合:应用在有函数索引的语句中。
 
点评:索引专题是个很复杂的专题,不仅要理论基础学得扎实,实际应用经验也很重要!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26977915/viewspace-734273/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26977915/viewspace-734273/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值