这个查询可以不使用Filesort吗?

时间:2013-02-02 08:08:01

标签: mysql

我有一个带有ORDER BY日期时间列的表。 无论我做什么,我都会在EXPLAIN中继续“使用where; using filesort”。

是否无法在datetime列上获取ORDER BY而不使用filesort?

查询非常简单,看起来像这样:

SELECT * FROM table1 WHERE creator_id = 1 AND user_id != 1 ORDER BY created DESC LIMIT 5

index在creator_id和user_id上我看不出创建索引的理由,因为它基本上总是唯一的,因此会在所有项目上创建索引,即与表格一样大。

编辑:我应该提到我已经尝试过将index设置为on,同样的结果。

1 个答案:

答案 0 :(得分:1)

如果您在(creator_id, created)上创建复合索引,则查询应该更快。

查询规划器将使用索引的第一部分:creator_id来满足WHERE约束,并使用created的第二部分来排序。