1、 表的某個字段值得離散度越高,該字段越適合選作索引的關鍵字。主鍵字段以及唯一性約束字段適合選作索引的關鍵字,原因就是這些字段的值非常離散。尤其是在主鍵字段創建索引時, cardinality (基數,集的勢)的值就等於該表的行數。 MySQL 在處理主鍵約束以及唯一性約束時,考慮周全。數據庫用戶創建主鍵約束的同時, MySQL 自動創建主索引( primary index ),且索引名稱為 Primary;數據庫用戶創建唯一性索引時, MySQL 自動創建唯一性索引( unique index ),默認情況下,索引名為唯一性索引的字段名。
2、 占用存儲空間少的字段更適合選作索引的關鍵字。例如,與字符串相比,整數字段占用的存儲空間較少,因此,較為適合選作索引關鍵字。
3、 存儲空間固定的字段更適合選作索引的關鍵字。與 text 類型的字段相比, char 類型的字段較為適合選作索引關鍵字。
4、 Where 子句中經常使用的字段應該創建索引,分組字段或者排序字段應該創建索引,兩個表的連接字段應該創建索引。
5、 更新頻繁的字段不適合創建索引,不會出現在 where 子句中的字段不應該創建索引。
6、 最左前綴原則。
7、 盡量使用前綴索引。