数据库 · 2012/10/08 0

Mysql 中的可能效率杀手 – GROUP BY

默认情况下,MySQL排序所有 GROUP BY 列1, 列2 查询, 这个过程类似于在你在查询中指定了 ORDER BY 列1, 列2.
如果你显式的使用一个包含相同列的 ORDER BY 子句,尽管排序操作仍然会发生, 但是MySQL可以没有查询速度损耗地对它进行优化 .
如果一个中查询包含了 GROUP BY 子句, 但你想要避免排序结果的消耗, 你可以指定ORDER BY NULL来禁止排序发生.

INSERT INTO foo SELECT a, COUNT(*) FROM bar GROUP BY a ORDER BY NULL;