通常情況下,只有當經常查詢索引列中的數據時,才需要在表上創建索引。索引建立后,在查詢使用該列時,系統將自動使用索引進行查詢。改變表中的的數據(如增加或刪除記錄)時,索引將自動更新。索引將占用磁盤空間,并且降低添加、刪除和更新元組(記錄)的速度。不過在多數情況下,索引所帶來的數據檢索速度的優勢大大超過它的不足之處。索引數目無限制,但索引索引越多,更新數據的速度越慢。對于僅用于查詢的表可以建立索引,對于數據更新頻繁的表則應少建索引。
通常當表中的列具備下述條件時,可以考慮在該列上建立索引:
①該列是表的主碼或外碼;
②該列是查詢經常要用到的列;
③該列經常出現在查詢條件中;
④該列經常要進行排序操作。
不適合作為索引的列有:
①該列的值域僅包含少量的幾個值,如性別、真假、0或1等;
②查詢此列時超過表的百分之二十的元組(記錄)被返回;
③該列所占用的字節數較多(超過了900字節);
④該列包含太多的重復值;
⑤該列中包含太多的空值(NULL);
⑥該列經常進行修改操作;
⑦該列已經在其它索引中使用。
一般地,我們在建立索引后,要檢驗其對數據庫性能是否有影響,如果索引沒有明顯提高查詢性能,或反而降低了數據庫的性能,則沒必要再創建此索引。
新聞熱點
疑難解答