这个是数据库的表
这样的索引情况下,出现了Using filesort
如何实现SELECT * FROM
jsy_card WHERE
cha_times > 0 ORDER BY
id DESC LIMIT 0,30
这个语句的查询,用到两个字段cha_times,id,并且没有出现Using filesort 呢
如果没有lh这个联合索引,他key直接走 PRIMARY
这个是数据库的表
这样的索引情况下,出现了Using filesort
如何实现SELECT * FROM
jsy_card WHERE
cha_times > 0 ORDER BY
id DESC LIMIT 0,30
这个语句的查询,用到两个字段cha_times,id,并且没有出现Using filesort 呢
如果没有lh这个联合索引,他key直接走 PRIMARY
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决
2 回答2k 阅读
3 回答2k 阅读
为什么order by主键出现filesort?
1.因为你并没有走主键;
2.因为你的联合索引,并不能使id避免排序
SELECT * FROM
jsy_cardWHERE
cha_times> 0 ORDER BY
idDESC LIMIT 0,30
如何建立联合索引避免filefort?无法解决,由于cha_times是范围查询,也就无法保证cha_times在有序的情况下,id也是有序的