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

来源:2-10 Limit查询的优化

蜗牛_Jay

2018-09-07 16:24

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

写回答 关注

1回答

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

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

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

    蜗牛_Jay

    多谢指教,我回头再去验证一遍

    2018-09-19 08:06:59

    共 1 条回复 >

性能优化之MySQL优化

了解MySQL数据库优化的方法和技巧,在课程中共同探讨一起学习吧

101639 学习 · 221 问题

查看课程

相似问题