数据库-优化-groupby的优化
生活随笔
收集整理的這篇文章主要介紹了
数据库-优化-groupby的优化
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
group by的優(yōu)化
最好使用同一表中的列,
需求:每個演員所參演影片的數(shù)量-(影片表和演員表)
explain select actor.first_name,actor.last_name,count(*) from sakila.film_actor inner join sakila.actor using(actor_id) group by film_actor.actor_id;優(yōu)化后的SQL:
explain select actor.first_name,actor.last_name,c.cnt from sakila.actor inner join ( select actor_id,count(*) as cnt from sakila.film_actor group by actor_id )as c using(actor_id);說明:從上面的執(zhí)行計劃來看,這種優(yōu)化后的方式沒有使用臨時文件和文件排序的方式了,取而代之的是使用了索引。查詢效率老高了。
這個時候我們表中的數(shù)據(jù)比較大,會大量的占用IO操作,優(yōu)化了sql執(zhí)行的效率,節(jié)省了服務(wù)器的資源,因此我們就需要優(yōu)化。
注意:
1、mysql 中using關(guān)鍵詞的作用:也就是說要使用using,那么表a和表b必須要有相同的列。
2、在用Join進(jìn)行多表聯(lián)合查詢時,我們通常使用On來建立兩個表的關(guān)系。其實還有一個更方便的關(guān)鍵字,那就是Using。
3、如果兩個表的關(guān)聯(lián)字段名是一樣的,就可以使用Using來建立關(guān)系,簡潔明了。
?
總結(jié)
以上是生活随笔為你收集整理的数据库-优化-groupby的优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库-优化-子查询优化
- 下一篇: 数据库-优化-Limit查询的优化