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