Oracle索引

2/13/2017来源:SQL技巧人气:1856

索引分类

B树索引: 通过在索引中保存排序的索引列的值以及记录的物理地址ROWID来实现快速查找。 位图索引 当索引列的值基数很低时(比如表示性别的字段,只有男和女,这就是基数很低),创建B树索引显然不是明智之选,创建位图索引想必是你最好的选择。 create bitmap index index_name on table(column) tablespace users; 反向键索引 如果我们要为主键添加索引时,考虑到主键如果是递增的话,B树索引也是不合适的,会使得树的两边不公平,这时采用反向键索引就可以很轻松地解决问题。 create index index_name on table(column) reverse tablespace users; alter index index_name rebuild reverse; 基于函数的索引 如果我们需要在where中用函数,那么创建基于函数的索引是很明智的选择。 create index index_name on table(lower(column)) tablespace users;

索引注意点

索引不是越多越好,索引会影响DML操作速度,原因很简单,每个DML语句都要增加更新到索引这个动作。 外键应该加索引,提高多表连接性能,原因也很简单,多表连接的实质是一个where语句。 大表才需要建索引,避免在小表建索引。 指定索引块空间PCTFREE,可以为未来的insert操作做准备。