一:概念
1.索引类似于书籍的目录,可以加快数据的检索,其关键是通过检索排序后的索引键来代替全表扫描,从而提高速度。
2.索引和表无关,对表的操作会由oracle自动选择是否使用索引,删除索引对基本表无影响。oracle创建主键会自动对该列创建索引。
二:基本语法
create [unique | bitmap] index index_name on table_name(...)
--unique标识唯一索引(列的值各不相同)
--bitmap,位图索引(适用于列重复值多 如性别)
三:索引分类
1.逻辑分类
单列索引:基于一列的操作
多列索引:组合索引,最多32列
唯一索引:列的值各不相同
非唯一索引:列的值允许相同
基于函数的唯一索引:基于函数表达式利用表中的一列或多列创建的索引。可以使b-树,也可以是位图索引
2.物理分类
分区索引
非分区索引:既可以是b-树索引,也可以是位图索引
b-树索引:传统平衡树索引。一般适用于重复低的字段
位图索引:bitmap适用于重复度高的字段
四:代码
1.创建
create index index_name on tb(id,name);
2.重命名
alter index index_name rename to index_name1;
3.合并索引(使用一段时间,索引会产生碎片,选择合并索引可以避免索引效率降低)
alter index index_name coalesce;
4.重建索引
alter index index_name rebuild;
5.删除
drop index index_name;
6.查看索引(表tb)
select * from all_indexes where table_name = 'tb'