事件背景

生产环境发现有查问超时,通过异样日志获取查问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,解决了性能问题