最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL?原理優(yōu)化之Group?By的優(yōu)化技巧

 更新時(shí)間:2022年08月14日 10:43:35   作者:51CTO崔皓???????  
這篇文章主要介紹了MySQL?原理優(yōu)化之Group?By的優(yōu)化技巧,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

今天來看看MySQL 中如何多Group By 語句進(jìn)行優(yōu)化的。

先創(chuàng)建tb_user 表如下:

通過show index from tb_user; 命令查看表,沒有存在任何的索引。

執(zhí)行如下代碼,查看SQL 執(zhí)行情況

explain select profession, count(*) from tb_user group by profession ;

發(fā)現(xiàn)返回結(jié)果中 type 為“ALL” ,Extra 返回“Using temporary” 說明沒有使用索引。

于是,創(chuàng)建基于profession,age和status 的索引如下:

create index index_user_pro_age_sta on tb_user(profession ,age, status);

這里創(chuàng)建索引從左到右的順序是 profession ,age, status。

此時(shí)再次執(zhí)行SQL執(zhí)行計(jì)劃如下:

explain select profession, count(*) from tb_user group by profession ;

發(fā)現(xiàn)使用了索引“index_user_pro_age_sta”。說明在執(zhí)行 group by操作的時(shí)候,使用聯(lián)合索引是有效的。

接著在看使用如下代碼:

explain select age, count(*) from tb_user group by age;

SQL 語句使用age 進(jìn)行g(shù)roup by,查看explain的結(jié)果如下:

在Extra 字段中發(fā)現(xiàn)使用了“Using temporary”,說明沒有走索引,是因?yàn)闆]有滿足索引的最左前綴法則。

聯(lián)合索引 index_user_pro_age_sta的順序從左到右分別是 profession ,age, status。

上面的SQL 語句Group by 后面接著的是age ,因此出現(xiàn)“Using temporary”。

這里對SQL 進(jìn)行修改。如下:

explain select profession,age, count(*) from tb_user group by profession, age;

由于group by 后面跟著profession, age ,符合聯(lián)合索引的創(chuàng)建順序,因此索引生效。

我們再來試試再加入過濾條件的情況,加入profession = 軟件工程,此時(shí)group by 里面只顯示 age,那么此時(shí)是否會走索引, 答案是 using index。因?yàn)闈M足了最左前綴法則。

explain select age, count(*) from tb_user where profession = '軟件工程' group by age;

總結(jié)一下:

SQL在分組操作的時(shí)候,可以通過索引來提高效率。做分組操作的時(shí)候,索引的使用需要滿足最左前綴法則。

到此這篇關(guān)于MySQL 原理優(yōu)化之Group By的優(yōu)化技巧的文章就介紹到這了,更多相關(guān)MySQLGroup By優(yōu)化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

富民县| 寿光市| 张家口市| 布尔津县| 侯马市| 安仁县| 临邑县| 临海市| 丹东市| 鄯善县| 克山县| 翁牛特旗| 深州市| 拉孜县| 大理市| 栖霞市| 望江县| 佳木斯市| 宜兰市| 广饶县| 沭阳县| 阜新| 石门县| 永登县| 莱西市| 板桥市| 龙江县| 西峡县| 海原县| 乡宁县| 双鸭山市| 孝感市| 长顺县| 潞西市| 青河县| 泰宁县| 平潭县| 万年县| 怀集县| 澄迈县| 柳江县|