1.不需要选择所有的列,作为索引的列应该是出现在where子句join子句、ORDER BY或GROUP BY子句中的列或连接子句中指定的列,而不是select后的列。
2.对于某些列中的值分布较小,就没有必要创建索引,比如有一个sex性别列,只包含M和F两个值,对该列创建索引没多大用处,因为不管查谁,数据都很大。
3.使用短索引,对于字符串列进行创建索引,可指定一个前缀长度。例如有一个char(200)列,如果钱10或20的字符多数是唯一的,就没必要对整个列作索引。
4.不要过度使用索引,不是越多越好。占空间,降低些操作性能,在修改表时,索引也会更新重构。
5.最左前缀,比如创建了(A,B,C)索引,则就创建了(A),(A,B),(A,B,C)索引,在where子句中使用最频繁的选择放在最左边。