索引的用途- 约束的实施(主键,外键,唯一键都会创建默认索引。最好的在键的时候先建索引,便于管理)
- 查询
- 排序
- 连接的时候(排序合并,嵌套循环(索引列到达的单行),散列连接(读入内存))
注意:如果检索数据超过2%-4%.全表扫描更快
索引查找过程为:索引->rowid->查找行
索引类型B*树一般用于like不包括开头有'%'和‘_’,between,>,<,=,in。
用于:重复率较低
更新频率不高
行数多、where jion用的比较多
位图索引用位图的方式高效记录
重复率高
and,or,not
反向索引 就是将正常的键值头尾调换后再进行存储,比如原值是“1234”,将会以“4321”形式进行存储,这样做可以高效地打散正常的索引键值在索引叶块中的分布 位置。 create index name on x() reverse; |
避免反复删除,插入不平衡问题。创建插入的时候从反面插入
缺点:
由于反向索引结构自身的特点,如果系统中经常使用范围扫描进行读取数据的话(例如在where子句中使用“between and”语句或比较运算符“>”“<”等)
函数索引(预先运行好存在数据库里用)
create index name on x(函数())
全部语法create [unique/bitmap] index name on d();
索引的管理
定期合并、重建
alter index i_ss rebuild /coalesce
指定索引创建的指定表空间
先插入数据在创建索引
一张表不超过6个
监视索引的使用
alter index name monitoring/no
monitoring usage
参看V$OBJECT_USAGE
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26742541/viewspace-734193/,如需转载,请注明出处,否则将追究法律责任。