MySQL高级 - SQL优化 - group by 优化
生活随笔
收集整理的這篇文章主要介紹了
MySQL高级 - SQL优化 - group by 优化
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
優(yōu)化group by 語句
由于GROUP BY 實(shí)際上也同樣會進(jìn)行排序操作,而且與ORDER BY 相比,GROUP BY 主要只是多了排序之后的分組操作。當(dāng)然,如果在分組的時候還使用了其他的一些聚合函數(shù),那么還需要一些聚合函數(shù)的計(jì)算。所以,在GROUP BY 的實(shí)現(xiàn)過程中,與 ORDER BY 一樣也可以利用到索引。
如果查詢包含 group by 但是用戶想要避免排序結(jié)果的消耗, 則可以執(zhí)行order by null 禁止排序。如下 :
drop index idx_emp_age_salary on emp;explain select age,count(*) from emp group by age;優(yōu)化后
explain select age,count(*) from emp group by age order by null;從上面的例子可以看出,第一個SQL語句需要進(jìn)行"filesort",而第二個SQL由于order by null 不需要進(jìn)行 "filesort", 而上文提過Filesort往往非常耗費(fèi)時間。
創(chuàng)建索引 :
create index idx_emp_age_salary on emp(age,salary);?
總結(jié)
以上是生活随笔為你收集整理的MySQL高级 - SQL优化 - group by 优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL高级 orderby 优化
- 下一篇: MySQL高级 - SQL优化 - 子查