索引的設計不合理或者缺少索引都會對數據庫和應用程序的性能造成障礙。高效的索引對獲的良好性能非常重要。設計索引是,應該考慮一下准則:
(1)索引並非語訛奪越好,若一個表中有大量索引,不僅占用磁盤空間,而且會影響Insert/delete/update等語句的性能,因為當表中的數據更改同時,索引也會進行調整和更新。
(2)避免對經常更新的表最好不要使用索引,並且索引中的列盡可能少,而對經常用於查詢的字段應該創建索引,但要避免添加不必要的字段。
(3)數據量小的表最好不要使用索引,由於數據比較少,查詢花費的時間肯能比遍歷索引的時間還要短,索引可能不會產生優化的效果。
(4)在條件表達式中進程用的的不同值較多的列上建立索引,在不同值很少的列上不要建立索引。比如在一個表的“性別”列上建立索引。弱國建立索引不但不會提高查詢效率,反而會嚴重降低數據的更新速度。
(5)當唯一性是某種數據本身的特征時,指定唯一索引。使用唯一索引需能確保定義的列的數據完整性,以提高查詢速度。
(6)在頻繁進行排序或分組(即進行group by或order by操作)的列上建立索引,弱國待排序的列有多個,可以在這些列上建立組合索引。