在 MySQL 中,group by
执行隐式 order by ASC
。
如果您想添加一个 ORDER BY ASC
,这非常好,因为结果已经排序。
但是如果你想 ORDER BY .. DESC
MySQL 必须以相反的方式对结果集进行排序。
这个技巧会加快选择速度、减慢速度还是什么都不做
SELECT field1, field2 FROM atable
GROUP BY -mydate -- group by trick to force a `group by ... desc`
ORDER BY mydate DESC
我知道我可以为代码计时,但我希望更深入地了解手头的问题。
所有相关的索引自然而然就位了,因为没有索引的优化是愚蠢的。
最佳答案
根据我的测试,将任何排序修饰符添加到分组依据,如 -
以更改排序顺序会减慢速度。
但是您可以指定:
SELECT id, name, sum(amount) FROM customers GROUP BY id DESC
而且 MySQL 会愉快地按 DESC 顺序对结果进行排序,而不需要额外的 order by
子句。这不会像添加 -
那样产生额外的运行时间。
关于mysql - 强制 `group by` 排序 DESC 会加快代码速度还是减慢速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7247063/