在MySQL 8.0.18中,增加了Hash Join新功能,它適用于未創(chuàng)建索引的字段,做等值關(guān)聯(lián)查詢。在之前的版本里,如果連接的字段沒有創(chuàng)建索引,查詢速度會是非常慢的,優(yōu)化器會采用BNL(塊嵌套)算法。
Hash Join算法是把一張小表數(shù)據(jù)存儲到內(nèi)存中的哈希表里,并逐行去匹配大表中的數(shù)據(jù),計算哈希值并把符合條件的數(shù)據(jù),從內(nèi)存中返回客戶端。
用sysbench生成4張表,并刪除默認的k字段索引。
我們用explain format=tree
命令可以查看到已經(jīng)使用到hash join算法。
但目前8.0.18版本,僅支持join。left join和right join失效,這里請注意。
總結(jié)
以上所述是小編給大家介紹的MySQL 8.0.18 Hash Join不支持left/right join左右連接問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!