【问题标题】:Using temporary, Using filesort with order and group by使用临时,使用带有 order 和 group by 的文件排序
【发布时间】:2011-10-19 17:09:03
【问题描述】:

查询

SELECT *
FROM table11
WHERE table1.field1 = 1
GROUP BY table1.field2
ORDER BY table1.field3 DESC

这些我都试过了

(field1,field2,field3)
(field1,field3,field2) 

索引但仍解释计划显示使用临时和使用文件排序。

有什么办法吗?

【问题讨论】:

    标签: mysql indexing group-by sql-order-by


    【解决方案1】:

    您正在尝试按 field3 对数据进行排序,这不是 group by 子句的一部分。这意味着field3参与了分组的过程,返回field3的随机值,所以文件排序是不可避免的。

    在这种情况下,最好的索引是(field1, field2)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 2012-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多