MySQL 不使用索引;使用文件排序

发布于 2024-11-17 21:23:41 字数 345 浏览 3 评论 0原文

MySQL 似乎没有使用索引,而是在以下查询中使用 filesort:

  SELECT `tweets`.* 
    FROM `tweets` 
   WHERE (`tweets`.contest_id = 159) 
ORDER BY tweet_id ASC, tweeted_at DESC LIMIT 100 OFFSET 0

我在 racing_id、tweet_id 和 tweeted_at 上有索引

当我执行 EXPLAIN EXTENDED 时,Extra 返回“Using where; using filesort”。如何改进我的查询?

MySQL appears to be not using indexes and is using filesort on the following query:

  SELECT `tweets`.* 
    FROM `tweets` 
   WHERE (`tweets`.contest_id = 159) 
ORDER BY tweet_id ASC, tweeted_at DESC LIMIT 100 OFFSET 0

I have indexes on contest_id, tweet_id and tweeted_at

When I execute EXPLAIN EXTENDED, Extra returns "Using where; using filesort". How can I improve my query?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

維他命╮ 2024-11-24 21:23:41

当混合使用ASC和DESC排序时,MySQL无法使用索引来优化GROUP BY语句。

另外,使用多个键进行排序将导致无法使用索引优化查询。

来自文档:

http://dev.mysql.com/doc/refman/ 5.6/en/order-by-optimization.html

在某些情况下,MySQL无法使用
索引来解析 ORDER BY,
虽然它仍然使用索引来查找
与 WHERE 子句匹配的行。
这些案例包括以下内容:

您在不同的键上使用 ORDER BY:

SELECT * FROM t1 ORDER BY key1, key2;

...

你混合ASC和
描述:

从 t1 中选择 * 按 key_part1 排序
DESC,key_part2 ASC;

如果您要排序的两列不是同一键的一部分,那么您正在执行上述两件事。

When you mix ASC and DESC sorting, MySQL cannot use indexes to optimize the GROUP BY statement.

Also, using multiple keys to sort will result in it not being able to optimize the query with indexes.

From the docs:

http://dev.mysql.com/doc/refman/5.6/en/order-by-optimization.html

In some cases, MySQL cannot use
indexes to resolve the ORDER BY,
although it still uses indexes to find
the rows that match the WHERE clause.
These cases include the following:

You use ORDER BY on different keys:

SELECT * FROM t1 ORDER BY key1, key2;

...

You mix ASC and
DESC:

SELECT * FROM t1 ORDER BY key_part1
DESC, key_part2 ASC;

If the two columns you are ordering on are not part of the same key, then you are doing both of the above things.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文