索引
索引是與表相關的一個可選結構
用以提高 SQL 語句執行的性能減少磁盤I/O
使用 CREATE INDEX 語句創建索引
在邏輯上和物理上都獨立於表的數據
Oracle 自動維護索引。
創建標準索引
SQL> CREATE INDEX item_index ON itemfile (itemcode)
TABLESPACE index_tbs;
重建索引
SQL> ALTER INDEX item_index REBUILD;
刪除索引
SQL> DROP INDEX item_index;
組合索引是在表的多個列上創建的索引
索引中列的順序是任意的
如果 SQL 語句的 WHERE 子句中引用了組合索引的所有列或大多數列,則可以提高檢索速度。
SQL> CREATE INDEX comp_index
ON itemfile(p_category, itemrate);
Oracle中組合索引的使用詳解
http://www.cnblogs.com/rootq/archive/2008/10/19/1314669.html (執行計劃、組合索引的講解)
1、 當使用基於規則的優化器(RBO)時,只有當組合索引的前導列出現在SQL語句的where子句中時,纔會使用到該索引;
索引中的分區
可以將索引存儲在不同的分區中
與分區有關的索引有三種類型:
局部分區索引 - 在分區表上創建的索引,在每個表分區上創建獨立的索引,索引的分區範圍與表一致
全局分區索引 - 在分區表或非分區表上創建的索引,索引單獨指定分區的範圍,與表的分區範圍或是否分區無關
全局非分區索引 - 在分區表上創建的全局普通索引,索引沒有被分區
like '%a%'任何情況下都不會走索引,因爲索引只是排了個序,對於like '%a%'這種操作索引根本用不上,但對like 'a%'這種是有效的
兩面%%的時候不會走索引,後面有的時候纔會走索引。 看執行計劃