Mysql学习

SQL慢查询优化建议(二)

2019-12-12  本文已影响0人  Sandy_678f

use temporary,use filesort优化建议:

  1. use temporary:需要用临时表存储结果集,常见于group by,order by操作
  2. use filesort:无法利用索引进行排序,而使用外部文件排序,常见于order by操作

通常产生use temporary的条件:

  1. group by的列没有走索引,产生临时表
  2. group by时,select的列不止group by的列,并且group by的列不是主键
  3. group by与order by的列不同,并且没有建立正确顺序的索引
  4. group by或order by的列不是来自JOIN语句第一个表.会产生临时表
  5. distinct 和 order by的列没有走索引

通常产生use filesort的条件:

  1. order by的列没有走索引
  2. order by的字段顺序与索引顺序不一致

优化建议:

  1. group by 与 order by字段增加索引
  2. group by 与 order by字段的索引满足最左匹配原则
  3. group by 与 order by字段不一致时,尽量不同时出现在同一sql语句中
上一篇下一篇

猜你喜欢

热点阅读