MySQL Query Rewrite Plugin使用

在這里簡(jiǎn)單介紹一下:

? ? ???該特性在MySQL 5.7.6以后官方引入。,可以在Server端收到SQL后,進(jìn)行改寫并執(zhí)行。

? ? ?只針對(duì)標(biāo)準(zhǔn)的select語(yǔ)句工作,不能對(duì)視圖定義及存儲(chǔ)過(guò)程中SELECT語(yǔ)句改寫

? ?改寫規(guī)則記錄在內(nèi)存中,實(shí)際對(duì)應(yīng)到:query_rewrite庫(kù)下的rewrite_rules這個(gè)表?

??利用query_rewrite下的存儲(chǔ)過(guò)程: flush_rewrite_rules() 及DML語(yǔ)句來(lái)加載更改規(guī)則

? ? ? 想想需要補(bǔ)充一下:

? ? ? 在該P(yáng)PT中我講了一個(gè)利用子查詢?nèi)?yōu)inner join的例子,利用子查詢減少前面部分的去除。這里有一個(gè)要求,就是第一部查詢,需要是主鍵或是唯一索引。看圖:

MySQL Query Rewrite Plugin使用

順便說(shuō)一下這塊的執(zhí)行邏輯: 對(duì)于5.6以后,有子查詢的相當(dāng)于后面走物化視圖,在查詢邏輯中,是判斷IN前面的選項(xiàng)是不是在后面(所以不關(guān)心后面是不是重復(fù),只要求有沒有),這樣如果前是一個(gè)主鍵或是唯一索引,就有去重復(fù)的作用,減少Group by類操作。 一個(gè)小的Tips。?

以上就是MySQL Query Rewrite Plugin使用的內(nèi)容,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP中文網(wǎng)(www.php.cn)!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊9 分享