在oracle索引是一种供服务器在表中快速查找一个行的数据库结构。合理使用索引能够大大提高数据库的运行效率。 在数据库中建立索引主要有以下作用。 (1)快速存取数据。 (2)既可以改善数据库性能,又可以保证列值的唯一性。 (3)实现表与表之间的参照完整性 (4)在使用orderby、groupby子句进行数据检索时,利用索引可以减少排序和分组的时间。
索引就是通过事先排好序,从而在查找时可以应用二分查找等高效率的算法。 一般的顺序查找,复杂度为O(n),而二分查找复杂度为O(log2n)。当n很大时,二者的效率相差及其悬殊。
目的:提高对表的查询速度;对表有关列的取值进行检查。
CREATE [unique] INDEX [user.]index
ON [user.]table (column [ASC | DESC] [,column
[ASC | DESC] ] ... )
[CLUSTER [scheam.]cluster]
[INITRANS n]
[MAXTRANS n]
[PCTFREE n]
[STORAGE storage]
[TABLESPACE tablespace]
[NO SORT]
Advanced例如:
create index big_index on big_data_tbl(id);其中:
修改索引的主要任务是修改已存在索引的存储参数适应增长的需要或者重新建立索引。
ALTER [UNIQUE] INDEX [user.]index
[INITRANS n]
[MAXTRANS n]
REBUILD
[STORAGE n]其中: REBUILD是根据原来的索引结构重新建立索引,实际是删除原来的索引后再重新建立。
提示: DBA经常用REBUILD来重建索引可以减少硬盘碎片和提高应用系统的性能。
当不需要时可以将索引删除以释放出硬盘空间。命令如下:
DROP INDEX [schema.]indexname注:当表结构被删除时,有其相关的所有索引也随之被删除。