MySQL索引使用情况分析

题目SQL:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
定值、范围还是排序,一般order by是给个范围
以下例子C3作用于排序而不是查找,所以用到两个索引字段
在这里插入图片描述
查找排序顺序最好与建的索引一致,否则可能会出现using filesort,因为第三层顺序mysql并不知道只能用自身文件排序
在这里插入图片描述
以下例子c2,c3用于排序无filesort,换成c3,c2就有filesort了,order by顺序不能乱
在这里插入图片描述
用c1,c2两个字段索引,但是c2、c3用于排序,无filesort
在这里插入图片描述
group by基本上都要进行排序,会有临时表产生且group by顺序也不能乱
在这里插入图片描述
一般性建议:

  1. 对于单键索引,尽量选择针对当前query过滤性更好的索引
  2. 在选择组合索引的时候,当前query中过滤性最好的字段在索引字段顺序中,位置越靠左越好。
  3. 在选择组合索引的时候,尽量选择可以能够包含当前query中的where字句中更多字段的索引
  4. 尽可能通过分析统计信息和调整query的写法来达到选择合适索引的目的
发布了217 篇原创文章 · 获赞 125 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39885372/article/details/104190966