2

我有一个包含我订购的日期时间列的表。无论我做什么,我都会从 EXPLAIN 中不断得到“使用位置;使用文件排序”。

有没有办法让日期时间列上的 ORDER BY 不使用文件排序?

查询非常简单,如下所示:

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

索引位于 creator_id 和 user_id 我认为没有理由在 created 上放置索引,因为它基本上总是唯一的,因此会在所有项目上创建索引,即与表一样大。

编辑:我应该提到我也尝试过将索引放在 created 上,结果相同。

4

1 回答 1

1

如果您在 上创建复合索引(creator_id, created),您的查询应该会运行得更快。

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

于 2013-02-02T08:16:26.460 回答