这条语句,为什么死活要 “ Using filesort”

yingyouzai 2011-03-30 12:12:29

mysql> explain select * from kaxi_art where verify=1 and img is not null order by id desc limit 5;
+----+-------------+----------+-------+---------------+------+---------+------+--------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+----------+-------+---------------+------+---------+------+--------+-----------------------------+
| 1 | SIMPLE | kaxi_art | range | img | img | 153 | NULL | 178664 | Using where; Using filesort |
+----+-------------+----------+-------+---------------+------+---------+------+--------+-----------------------------+

img索引是index:
img
verify
id
...全文
70 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mysqldbd 2011-03-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 yingyouzai 的回复:]
PHP code

mysql> explain select * from kaxi_art where verify=1 and img is not null order by id desc limit 5;
+----+-------------+----------+-------+---------------+------+---------+------+-------……
[/Quote]

可能是 order by id desc引起的。
wwwwb 2011-03-30
  • 打赏
  • 举报
回复
是用的复合索引?
ckc 2011-03-30
  • 打赏
  • 举报
回复
加大那个排序的空间试下
ACMAIN_CHM 2011-03-30
  • 打赏
  • 举报
回复
估计你的verify=1记录占了80%以上。这种大部分记录都符合条件情况下,MYSQL认为没有必要去用索引了。
或者你的索引创建根本不对。

你需要的索引是复合索引 (verify,img ,id)
aleng18 2011-03-30
  • 打赏
  • 举报
回复
rows 178664 结果集太大

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧