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

 

前言

做爲DBA或系統管理員,咱們有時會遇到一個慢SQL須要優化,可是經過分析執行計劃又沒有找到好的優化思路,或者優化以後效果不明顯,沒有達到本身理想的預期,此時的你是否是很焦慮?此時你必定想若是有一個工具能幫本身rewrite SQL和獲得一些優化的建議,那該多好啊。SOAR就是你尋找的工具。SOAR,即 SQL Optimizer And Rewriter,是一款 SQL 智能優化與改寫工具,由小米運維 DBA 團隊出品,SOAR 主要由語法解析器、集成環境、優化建議、重寫邏輯、工具集五大模塊組成,相比業內其餘優秀產品有本身的優點。mysql

1、安裝

1.一、先安裝go語言環境

一、下載安裝包linux

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

 

 

二、解壓文件git

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

 

三、設置變量使之生效github

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

 

四、確認版本golang

go version

 

1.2 安裝soar

一、下載安裝包web

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

 

 

二、soar加入到通用路徑sql

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

 

 

 

1.3 安裝soar web界面

1.3.1安裝

一、下載安裝鏡像docker

docker pull becivells/soar-web

 

二、啓動docker數據庫

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

 

1.3.2 訪問及配置

一、瀏覽器輸入 http://xx.xx.xx.xx:5077便可進入配置界面vim

 

 

二、驗證

 

 

1.3.3 配置說明及注意事項

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

三、線上線下環境問題: 線上環境做爲待 sql 評估環境,soar 在進行 sql 評估時,會根據 sql 語句,從 線上環境的數據庫鏈接實例 拷貝數據表到 測試環境的數據庫鏈接實例,而後在測試環境下執行 sql 語句進行分析。所以測試環境的數據庫鏈接實例須要有最高權限。若是沒法沒有最高權限可能形成一些問題,若是沒有權限能夠啓動一個空的 mysql docker 容器做爲測試環境。若是僅僅作測試用,可將線上線下環境指定爲同樣。 四、日誌等級: 日誌等級爲 0 時不打印日誌,設置爲 1-7 時,會將 soar 產生的日誌打印至控制檯,按 F12 或右擊網頁點擊審查元素打開調試工具,點擊 Console 按鈕查看日誌。

1.4 舉例說明

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

 

 

二、點擊SQL評估以後,系統會對當前的SQL給出優化的建議,以下圖所示:

 

 

 

輸出說明:

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

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

 

2、其餘

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

相關文章
相關標籤/搜索