`

oracle 索引

阅读更多

当索引键列用户SQL语句的where子句中时,该索引将直接指向包含这些值的行的位置。合理使用索引是减少磁盘I/O的主要方法,不管索引是否存在,都无需修改任何SQL语句的定义。索引只是一种加快数据访问的途径,它只影响执行速度。

索引可以加快数据的访问速度,也可以加快数据的查询速度,oracle中的索引大致分为一下几种:

1、唯一索引:唯一索引是唯一的,也可以是非唯一的。唯一索引可以确保在定义索引的列中,表的任意两行的值都不相同。非唯一索引没有在列上规定此限制。oracle自动为表的主键列创建唯一索引。可以使用create unique index命令明确的创建唯一索引;

create unique index item_index on tableName(columnname);

2、组合索引:组合索引是在表中的多个列上创建的索引。组合索引中的列的顺寻是任意的,不必是表中相邻的列,如过select语句中的where子句引用的组合索引中的所有列或大多数列,则组合索引可以提高数据的检索速度。创建组合索引时,应该注意定义中使用的列的顺序。通常,最频繁访问的列应放置在列表的最前面。

create index comp_index on tablename(a_column,b_column);

3、反向键索引:他是一种特殊类型的索引,在索引基于有序数的列时非常有用。因此,反向键索引通常建立在一些值连续增长的列上(高基数字段)

create index rev_index on table(columnname) reverse;
--使用noreverse可以将反向键索引重建为标准索引
alert index rev_index rebuild noreverse;

4、位图索引:位图索引适用于低基数列,也就是说不同值的数目比表的行数少的列,如果某个列的值重复了超过一百次,则可以考虑在该列上创建位图索引。位图索引的优点:

   1、对于大批量的查询,可减少相应的时间;

   2、相比其他索引技术,占用空间明显减少;

   3、即使在配置很低的终端硬件上,也能获得显著的性能;

create bitmap index bit_index on tablename(columnName);
 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics