索引的 統計和使用是數據庫自動完成的,不需要手動植入代碼 ,
開發者只需要確認對哪些字段或者字段組合是否創建索引就可以了。
字段被創建的索引不一定就非得起效,和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.索引並不是越多越好,一張表的索引需要個數不易太多。需要刪除不常使用的索引。
以上條件需要實際測試。根據自身環境確定一個比較好的索引原則。
