小米開源工具SOAR之SQL效能資訊解讀與優化建議
大家都知道資料庫中的explain執行計劃工具,能幫我們分析自己所編寫SQL的效能,如索引是否使用了、臨時表是否使用了、檔案排序是否使用了、掃描的行數以及各個查詢的執行順序等一些SQL執行反饋資訊,但這個explain出來的圖表不夠通俗易懂,也只有日積月累的童鞋,才能更好的使用這個工具**。而此時小米開源的soar工具能幫我將explain裡面的資訊解讀出來,提示我們寫出更加優質的sql程式碼。**
如下圖資訊(soar輸出的資訊用markdown文件開啟):
簡單的安裝及使用方式
1、windows環境下載soar.windows-amd64檔案
soar是命令列工具,不是圖形化桌面工具,需要在cmd.exe下以命令的方式執行。(注意:下載的檔案不是雙擊執行的,是命令,如 java -version的java命令符)
1)把soar.windwos-amd64檔案放在d盤
2)在d盤新建一個空的sql檔案,裡面存放你想解析的sql程式碼,如query.sql
3) 開啟cmd.exe -> type d:\query.sql | d:\soar.windows-amd64 -test-dsn=“資料庫使用者名稱:密碼@127.0.0.1:3306/my_database”
把輸出的分析資訊拷貝到markdown工具下(即可以視覺化)**
4) (方便以後工作)製作簡單雙擊執行工具:在d盤建立bat檔案,把指令存放到bat中,方便以後雙擊執行,如下程式碼
type query.sql | soar.windows-amd64 -test-dsn="root: [email protected]:3306/my_database" >file.txt 2>&1
2、Linux環境下載二進位制安裝包
下載:wget https://github.com/XiaoMi/soar/releases/download/v0.8.1/soar.linux-amd64 -O soar
授權:chmod a+x soar
1)下載的soar檔案就是命令,不用執行
2)在soar檔案當前目錄下執行
echo “select * from tb_area” | ./soar -test-dsn="資料庫使用者名稱:資料庫密碼@127.0.0.1:3306/my_base"
3) 輸出的資訊拷貝到markdown工具下即可直觀查閱提示資訊 或者把結果輸出到檔案中
4)(方便以後工作)製作shell指令碼工具
-
soar.sh 程式碼如下
content=$(cat query.sql) echo $content | ./soar.linux-amd64 -test-dsn="root:[email protected]:3306/intellif_base" > file.txt
3、支援開源(參與開發與改善,或者製作視覺化WEB操作介面)
github地址:https://github.com/XiaoMi/soar/blob/master/README.md
其他功能:列印所有的啟發式規則、忽略某些規則、語句重寫等