use temporary,use filesort优化建议:
- use temporary:需要用临时表存储结果集,常见于group by,order by操作
- use filesort:无法利用索引进行排序,而使用外部文件排序,常见于order by操作
通常产生use temporary的条件:
- group by的列没有走索引,产生临时表
- group by时,select的列不止group by的列,并且group by的列不是主键
- group by与order by的列不同,并且没有建立正确顺序的索引
- group by或order by的列不是来自JOIN语句第一个表.会产生临时表
- distinct 和 order by的列没有走索引
通常产生use filesort的条件:
- order by的列没有走索引
- order by的字段顺序与索引顺序不一致
优化建议:
- group by 与 order by字段增加索引
- group by 与 order by字段的索引满足最左匹配原则
- group by 与 order by字段不一致时,尽量不同时出现在同一sql语句中
网友评论