ORACLE索引
索引:
一種獨立於表的模式對象, 可以存儲在與表不同的磁盤或表空間中
索引被刪除或損壞, 不會對表產生影響, 其影響的只是查詢的速度
索引一旦建立, Oracle 管理系統會對其進行自動維護, 而且由 Oracle 管理系統決定何時使用索引。用戶不用在查詢語句中指定使用哪個索引
在刪除一個表時,所有基於該表的索引會自動被刪除
通過指針加速 Oracle 服務器的查詢速度
通過快速定位數據的方法,減少磁盤 I/O
創建索引:
自動創建: 在定義 PRIMARY KEY 或 UNIQUE 約束後系統自動在相應的列上創建唯一性索引
手動創建: 用戶可以在其它列上創建非唯一的索引,以加速查詢
什麼時候創建索引?
以下情況可以創建索引:
列中數據值分布范圍很廣
列經常在 WHERE 子句或連接條件中出現
表經常被訪問而且數據量很大 ,訪問的數據大概占數據總量的2%到4%
什麼時候不要創建索引?
下列情況不要創建索引:
表很小
列不經常作為連接條件或出現在WHERE子句中
查詢的數據大於2%到4%
表經常更新
使用索引的利弊:
索引不需要用,只是說我們在進行查詢的時候,速度會更快。當然查的速度快了,插入的速度就會慢。
因為插入數據的同時,還需要維護一個索引。
常用sql:
--創建索引
create index emp10_id_ix on t_emp10(employee_id);
--刪除索引
drop index emp10_id_ix;