【數據庫】SQL優化還憑經驗?這個工具能幫你智能優化SQL

【數據庫】SQL優化還憑經驗?這個工具能幫你智能優化SQL

前言

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 ,如果出現版本信息,則表示安裝成功。

【數據庫】SQL優化還憑經驗?這個工具能幫你智能優化SQL

如果報錯,將將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命令,如果出行版本信息,則為安裝成功。

【數據庫】SQL優化還憑經驗?這個工具能幫你智能優化SQL

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、智能改寫SQL,還可以美化SQL

【數據庫】SQL優化還憑經驗?這個工具能幫你智能優化SQL

你可以根據分析建議優化SQL語句

【數據庫】SQL優化還憑經驗?這個工具能幫你智能優化SQL

SQL優化建議效果

此Web圖形化工具的數據庫配置配置在LocalStorage,方便操作,也不增加額外負擔

【數據庫】SQL優化還憑經驗?這個工具能幫你智能優化SQL

數據庫配置頁面


分享到:


相關文章: