- 索引是與表相關的一個可選結構
- 用以提高 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);
,