Oracle 创建索引
索引是数据库服务器用来加快检索的速度,再通过加了索引的列进行检索
时候,数据库会自动使用索引,使用索引所在的列值进行快速检索,快速定位到
真实的数据内容。
哪些场合使用索引?
1.频繁使用where字句或连接条件
2.表比较大,数量多
3.列的取值范围广
4.查询结果占比比较小
索引创建
1.自动创建索引:
在创建主键约束,唯一键约束,主键约束时会自动创建索引
2.手动创建索引:
用户可以在列上创建唯一索引
索引创建
CREATE INDEX 索引名字 ON table(column);
如:
create index TB_SYS_DICTIONARY_idx on TB_SYS_DICTIONARY(DICT_NAME);
创建索引之后,查看索引
select uc.index_name,uc.COLUMN_NAME,ui.uniqueness
from user_indexes ui, user_ind_columns uc
where ui.index_name=uc.INDEX_NAME
and uc.TABLE_NAME='TB_SYS_DICTIONARY'
其中index_name,COLUMN_NAME,显示的时索引名称和表中字段名称,更多信息可以单独
查询 user_indexes,user_ind_columns这两个表,查看所有与序列有关的信息
还有一个uniqueness字段,这是显示该索引是自动创建的还是手动创建的,UNIQUE表示
自动创建,NONUNIQUE标识手动创建,如下刚创建的索引所示
当然,创建的索引有误或者不常用时可以删除:
drop index TB_SYS_DICTIONARY_idx;
删除索引之后查询如下图所示:
显示已经删除索引成功,查询中不再显示!