中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中如何進行nest loop且不考慮hash join

發布時間:2021-10-09 14:20:08 來源:億速云 閱讀:253 作者:柒染 欄目:MySQL數據庫

這期內容當中小編將會給大家帶來有關MySQL中如何進行nest loop且不考慮hash join,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

只考慮nest loop,不考慮hash join

條件如下:
a,b,c  where a.id=b.id and a.id=c.id  where a.name=’gaopeng’,b.name=’gaopeng’,c.name=’gaopeng’

假設a為驅動表,先連接b,再連接c ,且b,c表 id均有索引。
流程如下:

loop:
1、訪問驅動表a,過濾條件a.name='gaopeng',這個過程有索引用索引
   獲得第一條數據記做row_a1,這里可能會匹配出多行數據,需要循環
   loop:
     2、訪問被驅動表b,連接條件a.id=b.id 相當于條件b.id = row_a1.id
        這個過程b.id 有索引用索引,得到連接后的數據 a.\*+b.\*,這里可能
        會匹配出多行數據,需要循環
     3、每行數據,施加過濾條件b.name='gaopeng',假設 得到第一條數據記做row_b1
        loop:
           4、訪問被驅動表c,連接條件a.id=c.id 相當于條件c.id = row_b1.id
              這個過程c.id 有索引用索引,得到連接后的數據 a.\*+b.\*+c.\*,這里可能
              會匹配出多行數據,需要循環
           5、每行數據,施加過濾條件c.name='gaopeng',假設 得到第一條數據記做row_c1

這里row_c1就是最終的第一條數據。其實就是3層嵌套循環的意思。

后面使用debug進行驗證。。

被驅動表全表掃描會使用A Block Nested-Loop (BNL) 代替A simple nested-loop join (NLJ) ,使用join buffer , 第1步 會一次讀取多行數據 假設讀取了row_an行 ,第2步 條件相當于 b.id in (row_a1.id,row_a2.id…row_an.id)這樣只會一次全表掃描了。。不然每條全表掃描更慢,及使用

上述就是小編為大家分享的MySQL中如何進行nest loop且不考慮hash join了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上林县| 武平县| 敖汉旗| 钟祥市| 霍林郭勒市| 南华县| 黄冈市| 青冈县| 弥渡县| 拜泉县| 荆州市| 温宿县| 塔河县| 邹平县| 方城县| 清水县| 关岭| 汕尾市| 三都| 定边县| 灵武市| 临漳县| 吉安市| 香格里拉县| 曲靖市| 安康市| 远安县| 和顺县| 威信县| 顺昌县| 嫩江县| 宜君县| 巢湖市| 历史| 普格县| 江阴市| 乌兰浩特市| 山阴县| 昭通市| 磴口县| 桃江县|