關於Oracle中索引的使用


    索引的 統計和使用是數據庫自動完成的,不需要手動植入代碼 ,

開發者只需要確認對哪些字段或者字段組合是否創建索引就可以了。

 

   字段被創建的索引不一定就非得起效,和sql語句使用的條件有關系,

比如 LIKE 關鍵 對索引就是無效的。

 

  創建索引的語法為:CREATE INDEX idx_表名_字段名 ON 表名(字段名或字段組合);

如果經常 使用ORDER BY子句,進行多字段排序,使用這種復合索引比較有效。

 

  對了 ,索引的使用一般在WERER條件中使用,也可以使用在DISTINCT去重,還可以

創建基於函數的所用,比如SELECT * FROM xxx WHERE UPPER(xxx) = 'XXX';

如果 對UPPER函數創建索引:

CREATE INDEX idx_表名_字段名 ON 表名(UPPER(xxx));

在查詢時也能提提高效率。

 

  索引需要定期重建,主要應對數據表的更新,使得索引更精確,保證查詢效率。

所以這就說明添加索引盡量對DML操作少的表字段進行比較好。

重建索引的 語法為:

ALTER INDEX  idx_表名_字段名  REBULID;

如果一張表里面的索引創建不合理,包括索引沒有經常更新,不僅不會提升查詢效率,

反而還會降低查詢效率。可以考慮刪除索引:

刪除索引語法:

DROP INDEX  idx_表名_字段名  ;

 

那么創建索引的原則是什么呢:

1.一般不再數據量小的表中創建索引。一萬條以下可以不用考慮了。

2.在經常出現在WHERE條件中的字段添加所以。不如多表的 連接條件可以考慮添加索引。

3.不建議經常在DML表中添加索引。

4.考慮在經常出現在ORDER BY ,DISTINCT等后的字符添加索引。若是復合索引,

    需要保證添加索引的字符順序與使用時字段的順序一致。

5.索引並不是越多越好,一張表的索引需要個數不易太多。需要刪除不常使用的索引。

 

以上條件需要實際測試。根據自身環境確定一個比較好的索引原則。

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM