Case:MySQL Federated存儲引擎引發的慢SQL優化

這個案例並非我遇到的,可是個人工做生產環境中有使用到federated存儲引擎,因此記錄一下。html


優化前mysql

有一條SQL部分截取內容以下,執行約268秒才能出結果:sql

1.png

優化後服務器

從這條SQL的執行計劃中能夠看出來mego.trade_order並無出如今table列中,經查看,mego.trade_order是一個Federated存儲引擎,相似Oracle的DBlink,在本地只是個連接的形式存在,實際數據文件並不存在。ide

因此mego.trade_order表做爲一個subquery效率很是差,能夠改寫成join的方式,去掉subquery,讓mego.trade_order表儘可能第一個前面的結果join,減小去遠程服務器取數據的次數,優化以下,優化事後只須要0.74秒優化


2.png


有關Federated存儲引擎參考連接spa

https://dev.mysql.com/doc/refman/5.5/en/federated-storage-engine.htmlhtm

相關文章
相關標籤/搜索