合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
# 优化group by 语句 由于GROUP BY 实际上也同样会进行排序操作,而且与ORDER BY 相比,GROUP BY 主要只是多了排序之后的分组操作。当然,如果在分组的时候还使用了其他的一些聚合函数,那么还需要一些聚合函数的计算。所以,在GROUP BY 的实现过程中,与 ORDER BY 一样也可以利用到索引。 **1)**.如果查询包含 group by 但是用户想要避免排序结果的消耗, 则可以执行order by null 禁止排序。如下 : ```SQL drop index idx_emp_age_salary on emp; explain select age,count(*) from emp group by age; ``` ![](https://img.kancloud.cn/da/d0/dad0c99c1a9f9fc2700857ceaa0bdb6f_2444x354.png) 优化后 ```sql explain select age,count(*) from emp group by age order by null; ``` ![](https://img.kancloud.cn/1c/bb/1cbb2ad37e18d033659299471275e843_2334x234.png) **2)** 使用索引 : ~~~ create index idx_emp_age_salary on emp(age,salary); ~~~ ![](https://img.kancloud.cn/3f/e1/3fe1f47357b3b408959747fc81ebae4e_2604x242.png)