在這里簡單介紹一下:
? ? ???該特性在MySQL 5.7.6以后官方引入。,可以在Server端收到SQL后,進(jìn)行改寫并執(zhí)行。
? ? ?只針對標(biāo)準(zhǔn)的select語句工作,不能對視圖定義及存儲過程中SELECT語句改寫
? ?改寫規(guī)則記錄在內(nèi)存中,實際對應(yīng)到:query_rewrite庫下的rewrite_rules這個表?
??利用query_rewrite下的存儲過程: flush_rewrite_rules() 及DML語句來加載更改規(guī)則
? ? ? 想想需要補(bǔ)充一下:
? ? ? 在該P(yáng)PT中我講了一個利用子查詢?nèi)?yōu)inner join的例子,利用子查詢減少前面部分的去除。這里有一個要求,就是第一部查詢,需要是主鍵或是唯一索引。看圖:
順便說一下這塊的執(zhí)行邏輯: 對于5.6以后,有子查詢的相當(dāng)于后面走物化視圖,在查詢邏輯中,是判斷IN前面的選項是不是在后面(所以不關(guān)心后面是不是重復(fù),只要求有沒有),這樣如果前是一個主鍵或是唯一索引,就有去重復(fù)的作用,減少Group by類操作。 一個小的Tips。?
以上就是MySQL Query Rewrite Plugin使用的內(nèi)容,更多相關(guān)內(nèi)容請關(guān)注PHP中文網(wǎng)(www.php.cn)!
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END