MySql Explain 调优踩坑

事件背景

生产环境发现有查询超时,通过异常日志获取查询sql并进行排查,explain后发现该sql使用了filesort,导致查询效率问题

查询sql & 索引情况

  • 查询sql
    select * from table where column1 = 'xxx' and column2 in ('a','b','c') order by id asc limit 100
  • 现有索引
    主键索引
    联合索引column1,column3

优化过程

经过explain发现,上述sql使用到了column1,column3的联合索引,但是查询中并不包含column3列,猜测可能是由于这个优化引擎使用了该索引才导致的filesort

于是删除column1,column3的联合索引,并建立column1,column2,column3的单独索引,并再次执行explain查看性能,发现已经不存在filesort,解决了性能问题

你可能感兴趣的:(mysql)