MySQL 8.0.18 Hash Join不支持left/right join左右連接問(wèn)題
在MySQL 8.0.18中,增加了Hash Join新功能,它適用于未創(chuàng)建索引的字段,做等值關(guān)聯(lián)查詢。在之前的版本里,如果連接的字段沒(méi)有創(chuàng)建索引,查詢速度會(huì)是非常慢的,優(yōu)化器會(huì)采用BNL(塊嵌套)算法。
Hash Join算法是把一張小表數(shù)據(jù)存儲(chǔ)到內(nèi)存中的哈希表里,并逐行去匹配大表中的數(shù)據(jù),計(jì)算哈希值并把符合條件的數(shù)據(jù),從內(nèi)存中返回客戶端。

用sysbench生成4張表,并刪除默認(rèn)的k字段索引。

我們用explain format=tree命令可以查看到已經(jīng)使用到hash join算法。
但目前8.0.18版本,僅支持join。left join和right join失效,這里請(qǐng)注意。

總結(jié)
以上所述是小編給大家介紹的MySQL 8.0.18 Hash Join不支持left/right join左右連接問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
MySQL?中的?SQL_MODE?設(shè)置方法ANSI_QUOTES?選項(xiàng)解析與應(yīng)用小結(jié)
sql_mode是?MySQL?中的一個(gè)系統(tǒng)變量,用于控制?SQL?語(yǔ)句的解析和執(zhí)行方式,它由多個(gè)選項(xiàng)組成,每個(gè)選項(xiàng)都可以獨(dú)立設(shè)置,以滿足不同的應(yīng)用場(chǎng)景需求,這篇文章主要介紹了MySQL?中的?SQL_MODE?設(shè)置:ANSI_QUOTES?選項(xiàng)解析與應(yīng)用2024-12-12
MySQL存儲(chǔ)過(guò)程中實(shí)現(xiàn)執(zhí)行動(dòng)態(tài)SQL語(yǔ)句的方法
這篇文章主要介紹了MySQL存儲(chǔ)過(guò)程中實(shí)現(xiàn)執(zhí)行動(dòng)態(tài)SQL語(yǔ)句的方法,實(shí)例分析了MySQL中構(gòu)造及執(zhí)行動(dòng)態(tài)SQL語(yǔ)句的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
MySQL數(shù)據(jù)庫(kù)改名的三種實(shí)現(xiàn)方式
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)改名的三種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
MySQL數(shù)據(jù)庫(kù)高級(jí)查詢和多表查詢
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)高級(jí)查詢和多表查詢,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

