在MySQL 8.0.18版本里,支持對(duì)NOT IN/EXISTS子查詢語句優(yōu)化,優(yōu)化器內(nèi)部將查詢自動(dòng)重寫為AntiJoin反連接查詢SQL語句。
成都創(chuàng)新互聯(lián)公司于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元永修做網(wǎng)站,已為上家服務(wù),為永修各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
通常情況下,我們希望由內(nèi)到外,先完成內(nèi)表里的查詢結(jié)果,然后驅(qū)動(dòng)外查詢的表,完成最終查詢,但是子查詢會(huì)先掃描外表中的所有數(shù)據(jù),每條數(shù)據(jù)將會(huì)傳到內(nèi)表中與之關(guān)聯(lián),如果外表很大的話,那么性能上將會(huì)很差。
讓我們看一個(gè)例子
explain?select?*?from?t1?where?id?not?in?(select?id?from?t2);
優(yōu)化器在內(nèi)部,是將not in子查詢重寫為下面的語句
explain?select?t1.*?from?t1?left?join?t2?on?t1.id=t2.id?where?t2.id?is?null;
對(duì)比兩個(gè)執(zhí)行計(jì)劃,結(jié)果是一樣的。
分享名稱:MySQL8.0.18優(yōu)化器添加AntiJoin反連接優(yōu)
文章網(wǎng)址:http://jinyejixie.com/article40/podgeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、軟件開發(fā)、自適應(yīng)網(wǎng)站、域名注冊(cè)、網(wǎng)站排名、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)