1 索引简介
- 索引是与表相关的一个可选结构
- 用以提高 SQL 语句执行的性能
- 减少磁盘I/O
- 使用 CREATE INDEX 语句创建索引
- 在逻辑上和物理上都独立于表的数据 Oracle 自动维护索引
索引有各种类型,除了标准索引外,还有一些特殊类型的索引:
2 索引创建修改删除
创建标准索引
CREATE INDEX item_index ON itemfile (itemcode) TABLESPACE index_tbs;
重建索引
SQL> ALTER INDEX item_index REBUILD;
删除索引
SQL> DROP INDEX item_index;
3 唯一索引
唯一索引确保在定义索引的列中没有重复值
Oracle 自动在表的主键列上创建唯一索引
使用CREATE UNIQUE INDEX语句创建唯一索引
SQL> CREATE UNIQUE INDEX item_index ON itemfile (itemcode);
4 组合索引
组合索引是在表的多个列上创建的索引
索引中列的顺序是任意的
如果 SQL 语句的 WHERE 子句中引用了组合索引的所有列或大多数列,则可以提高检索速度
SQL> CREATE INDEX comp_index ON itemfile(p_category, itemrate);
5 反向键索引
反向键索引反转索引列键值的每个字节
通常建立在值是连续增长的列上,使数据均匀地分布在整个索引上
创建索引时使用REVERSE关键字
1001 1001
1002 2001
1003 3001
1004 4001
1005 5001
SQL> CREATE INDEX rev_index ON itemfile (itemcode) REVERSE; SQL> ALTER INDEX rev_index REBUID NOREVERSE;
6 位图索引
位图索引适合创建在低基数列上
位图索引不直接存储ROWID,而是存储字节位到ROWID的映射
减少响应时间
节省空间占用
SQL> CREATE BITMAP INDEX bit_index
ON order_master (orderno);