前言
SQL優化是程序開發中經常遇到的問題,尤其是在程序規模不斷擴大的時候。SQL的好壞不僅制約著程序的規模,影響著用戶的體驗,甚至威脅著信息的安全。
我們經常聽到說哪家平臺掛了,哪家網站被黑了,但我們不知道,其實這些平臺掛了、被黑了的原因很多時候在於SQL不夠健壯。SQL不夠健壯易造成數據查詢超時、SQL注入、信息洩漏等問題。
SQL優化歸根到底是SQL語句的優化,索引的優化。由於很多數據庫自帶的分析工具不夠強大便捷,很多時候要想寫出好一點的SQL語句完全憑經驗。這也是為什麼有人說看一個程序員資歷深不深就看他寫的SQL好不好的原因。
憑經驗做事不總是那麼可靠的,況且也並不是人人都有那麼多的經驗。那如果不靠經驗,那新手怎麼辦?答,使用SOAR!
什麼是SOAR
SOAR是SQL Optimizer And Rewriter的簡稱。SOAR是一個對SQL進行優化和改寫的自動化工具,由小米人工智能與雲平臺的數據庫團隊開發與維護。現在在GitHub上有4000多星。
功能特點
SOAR有如下功能特點:
- 跨平臺支持(支持Linux,、Mac、Windows環境)
- 目前只支持 MySQL 語法族協議的SQL優化
- 支持基於啟發式算法的語句優化
- 支持複雜查詢的多列索引優化(UPDATE, INSERT, DELETE, SELECT)
- 支持EXPLAIN信息豐富解讀
- 支持SQL指紋、壓縮和美化
- 支持同一張表多條ALTER請求合併
- 支持自定義規則的SQL改寫
安裝使用
SOAR支持Linux、Mac、Window環境,可以在Linux、Mac、Window上安裝使用。下面以Window版本為例介紹安裝使用過程。
1、安裝Go
SOAR的使用依賴Go語言,所以在安裝使用之前,先安裝Go。
下載地址:https://studygolang.com/dl
Go安裝完成後,在cmd中輸入 go version ,如果出現版本信息,則表示安裝成功。
如果報錯,將將C:\Go\bin(你的安裝路徑)加入環境變量。
2、安裝SOAR
選擇windows版本下載SOAR安裝文件
下載地址:https://github.com/XiaoMi/soar/releases
將安裝文件soar.windows-amd64重命名為soar.exe,放置D:\Program Files (x86)\soar文件夾下,你也可以將這個目錄加入到環境變量中。
打開cmd,進入到soar.exe所在目錄,然後輸入 soar -version命令,如果出行版本信息,則為安裝成功。
3、安裝Web圖形化工具
這一步不是必須的,如果你喜歡命令行操作,完成步驟2即可。選擇安裝Web圖形化工具,只是為了方便操作。
安裝Web圖形化工具,可以在下面地址下載:
https://github.com/xiyangxixian/soar-web
此Web圖形化工具依賴Python3x、Flask、PyMysql、Pycryptodome。因此,安裝此Web圖形化工具前先安裝Python3x。待Python3x完成後,執行如下命令,安裝其他依賴。
pip install -r requirement.txt
待所有依賴晚裝完畢,執行如下命令,啟動服務。
run.bat
如下是安裝後的效果圖:
此頁面不僅可以分析SQL、智能改寫SQL,還可以美化SQL
你可以根據分析建議優化SQL語句
此Web圖形化工具的數據庫配置配置在LocalStorage,方便操作,也不增加額外負擔
閱讀更多 編碼之道 的文章