亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

?explain select actor.first_name, actor.last_name, count(*) from (film_actor inner join actor on film_actor.actor_id = actor.actor_id) group by actor.actor_id\G; 與這個相比, 我的這種寫法的分析結果其實更好一點,區別就在于最后group by 的actor_id是用的actor的, 結果如下, 請問為何會這樣。

+----+-------------+------------+-------+---------------+---------+---------+-----------------------+------+-------------+

| id | select_type | table ? ? ?| type ?| possible_keys | key ? ? | key_len | ref ? ? ? ? ? ? ? ? ? | rows | Extra ? ? ? |

+----+-------------+------------+-------+---------------+---------+---------+-----------------------+------+-------------+

| ?1 | SIMPLE ? ? ?| actor ? ? ?| index | PRIMARY ? ? ? | PRIMARY | 2 ? ? ? | NULL ? ? ? ? ? ? ? ? ?| ? 15 | ? ? ? ? ? ? |

| ?1 | SIMPLE ? ? ?| film_actor | ref ? | PRIMARY ? ? ? | PRIMARY | 2 ? ? ? | sakila.actor.actor_id | ? 13 | Using index |

+----+-------------+------------+-------+---------------+---------+---------+-----------------------+------+-------------+


正在回答

1 回答

同問

難道是主鍵的原因?

在actor表中actor_id是主鍵

而在film_actor表中('actor_id','film_id')組合作為主鍵

http://img1.sycdn.imooc.com//565d80cc000190ad06440476.jpg

在兩個執行計劃的對比中看到

如果group by actor.actor_id

在查actor表時 用到了primary key

565d82810001315a05000430.jpg

而?GROUP BY?film_actor.actor_id 時 沒有用到索引

565d82800001b3ff05000425.jpg


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
性能優化之MySQL優化
  • 參與學習       101754    人
  • 解答問題       235    個

了解MySQL數據庫優化的方法和技巧,在課程中共同探討一起學習吧

進入課程
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號