很简单,记住这几条就行
创建索引:
1常用的查询条件
2 外键列
3 常用的排序列
4 常用的分组列
不创建索引:
1 表数据量很少
2 类似性别 值只有男女,还是各50%,用索引提高不了性能
3 table t 的 t.a t.b t.c 3个列,确定一个就可以得到其他2个,只要给一个加索引就可以了
索引不要创建太多,用索引查询也消耗性能
复核索引
where A =1 AND B = 2 AND C =3
可以创建复核索引(A,B,C),相当于创建了(A,B,C) (A,B) (A) 3个索引,要把最常用的放在左边
mysql查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
不要在索引列进行计算/格式转换等操作