SQL優化沒思路,智能優化工具來幫你


 

前言

作為DBA或系統管理員,我們有時會遇到一個慢SQL需要優化,但是通過分析執行計划又沒有找到好的優化思路,或者優化之后效果不明顯,沒有達到自己理想的預期,此時的你是不是很焦慮?此時你一定想如果有一個工具能幫自己rewrite SQL和得到一些優化的建議,那該多好啊。SOAR就是你尋找的工具。SOAR,即 SQL Optimizer And Rewriter,是一款 SQL 智能優化與改寫工具,由小米運維 DBA 團隊出品,SOAR 主要由語法解析器、集成環境、優化建議、重寫邏輯、工具集五大模塊組成,相比業內其他優秀產品有自己的優勢。

一、安裝

1.1、先安裝go語言環境

1、下載安裝包

 wget  https://studygolang.com/dl/golang/go1.12.5.linux-amd64.tar.gz

 

 

2、解壓文件

tar -C /usr/local -xzf go1.12.5.linux-amd64.tar.gz

 

3、設置變量使之生效

cd ~
vim .profile
在文件末尾添加如下內容:
export PATH=$PATH:/usr/local/go/bin
:wq
source .profile

 

4、確認版本

go version

 

1.2 安裝soar

1、下載安裝包

wget https://github.com/XiaoMi/soar/releases/download/0.9.0/soar.linux-amd64 -O /usr/local/soar

 

 

2、soar加入到通用路徑

cd ~
vim .bash_profile
在文件中加入如下行:
....
export PATH=$PATH:/usr/local/soar/bin
....

 

 

 

1.3 安裝soar web界面

1.3.1安裝

1、下載安裝鏡像

docker pull becivells/soar-web

 

2、啟動docker

docker run -d --name soar-web -p 5077:5077 becivells/soar-web

 

1.3.2 訪問及配置

1、瀏覽器輸入 http://xx.xx.xx.xx:5077即可進入配置界面

 

 

2、驗證

 

 

1.3.3 配置說明及注意事項

1、關於存儲: 所有的配置都是保存在瀏覽器 Local Storage 中的,多人之間使用是互補影響的,自己只能看到自己的配置,更換瀏覽器或者清除瀏覽器會造成配置丟失。 2、配置模板: 可以添加多數據庫連接實例及配置,方便在 sql 評估的相互切換使用,具體配置項詳情見https://github.com/XiaoMi/soar/blob/master/doc/config.md

3、線上線下環境問題: 線上環境作為待 sql 評估環境,soar 在進行 sql 評估時,會根據 sql 語句,從 線上環境的數據庫連接實例 拷貝數據表到 測試環境的數據庫連接實例,然后在測試環境下執行 sql 語句進行分析。因此測試環境的數據庫連接實例需要有最高權限。如果無法沒有最高權限可能造成一些問題,如果沒有權限可以啟動一個空的 mysql docker 容器作為測試環境。如果僅僅做測試用,可將線上線下環境指定為一樣。 4、日志等級: 日志等級為 0 時不打印日志,設置為 1-7 時,會將 soar 產生的日志打印至控制台,按 F12 或右擊網頁點擊審查元素打開調試工具,點擊 Console 按鈕查看日志。

1.4 舉例說明

1、SQL分析選項卡界面輸入要優化的SQL,如下圖所示:

 

 

2、點擊SQL評估之后,系統會對當前的SQL給出優化的建議,如下圖所示:

 

 

 

輸出說明:

  • 查詢語句中用in代替or效果更好。

  • 存儲IP地址建議用整數,而不是字符型,效率更高,此例中的IP地址用的是字符型。

 

二、其他

在遇到SQL沒有優化思路時,可以嘗試用用此工具,可能會給你不一樣的思路。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM