mysql的join算法,Mysql Join 连接算法
生活随笔
收集整理的這篇文章主要介紹了
mysql的join算法,Mysql Join 连接算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Join 語句的兩種算法,分別是 Index Nested-Loop Join(NLJ) 和 Block Nested-Loop Join(BNL)。
直接使用join mysql 優化器自動選擇 驅動表。
從驅動表讀入數據,然后根據連接字段,根據條件匹配被驅動表,然后返回結果集,重復該步驟,直到驅動表循環結束。
1,可以用上被驅動表的索引,所以我們稱之為“Index Nested-Loop Join”,簡稱 NLJ。
2,被驅動表上沒有可用的索引,算法為BNL。
join_buffer_size越大,可以放入的行數越多,分段越少,對被驅動表全表掃描次數越少。
join_buffer 的大小是由參數 join_buffer_size 設定的,默認值是 256k。如果放不下表 t1 的所有數據話,策略很簡單,就是分段放。
建議使用小表做驅動表?什么叫做小表?
準確地說,在決定哪個表做驅動表的時候,應該是兩個表按照各自的條件過濾,過濾完成之后,計算參與 join 的各個字段的總數據量,數據量小的那個表,就是“小表”,應該作為驅動表。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的mysql的join算法,Mysql Join 连接算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库:MySQL、HBase、Elas
- 下一篇: java实现微博热搜榜_微博热搜数据