我有一个表结构,像这样
comment_id primary key
comment_content
comment_author
comment_author_url当我像这样触发查询时
explain SELECT * FROM comments ORDER BY comment_id它将结果输出为
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE comments ALL NULL NULL NULL NULL 22563 Using filesort为什么找不到我定义为主键的索引?
发布于 2012-08-12 17:12:02
任何时候不能从索引执行排序,它就是文件排序。
这里奇怪的是,你应该在那个字段上建立索引,因为它是一个主键(并且一个主键列是隐式索引的),在测试数据库上测试我刚刚注意到,每当你执行SELECT *时,MySQL都会使用FileSort,这是一个没有意义的行为(我知道),但是如果你用这种方式重写你的查询:
SELECT comment_id, comment_content, comment_author, comment_author_url
FROM comments
ORDER BY comment_id它将正确使用索引。可能是mysql的一个bug ...
https://stackoverflow.com/questions/11920953
复制相似问题