问答详情
源自:2-10 Limit查询的优化

order by title 此处title有索引,为什么还是filesort呢?

如果有同学把老师教学过程中用到的数据表迁移到自己的机器的话,你可以用命令 SHOW INDEX FROM `film`看一下结果,你会发现在title字段上是有一个索引类型为BTREE的索引的,名字叫 idx_title,此时你explain按照title排序的语句,你会发现该语句是有filesort出现的,那么优化说的给order by的列加索引就会优化的方法为什么是没有生效的?

提问者:蜗牛_Jay 2018-09-07 16:24

个回答

  • 慕粉4057600
    2018-09-19 00:25:47

    using index是有条件的,需要你说查询的的列与order by 之后的列具有相同的索引才行。

    例如  select release_year from film order by title;要使用using index,需要 给 release_year和title字段建立相同的索引