分析SQL給出索引優化建議的工具(美團開源)

zzhuaze發表於2022-03-23
分析SQL給出索引優化建議的工具(美團開源)

SQLAdvisor是由美團點評公司技術工程部DBA團隊(北京)開發維護的一個分析SQL給出索引優化建議的工具。它基於MySQL原生態詞法解析,結合分析SQL中的where條件、聚合條件、多表Join關係 給出索引優化建議。 目前SQLAdvisor在美團點評內部廣泛應用,公司內部對SQLAdvisor的開發全面轉到github上,開源和內部使用保持一致

主要功能:輸出SQL索引優化建議

安裝測試的詳細過程
開源介紹


下載地址

1. SQLAdvisor安裝

以redhat6系統為例

1.1 拉取最新程式碼
前提是聯網,已安裝git工具(yum install git)
git clone

1.2 安裝依賴項

 1.2.1. yum   install cmake libaio-devel libffi-devel glib2 glib2-devel
 1.2.2. 配置percona56 yum源:
        yum install

        yum   install --enablerepo=Percona56 Percona-Server-shared-56
 ##Percona56 是yum中配置的名字

 1.2.3.配置軟連結
1. cd /usr/lib64/
2. ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so

注意
1.跟據glib安裝的路徑,修改SQLAdvisor/sqladvisor/CMakeLists.txt中的兩處include_directories針對glib設定的path。glib yum 安裝預設不需要修改路徑
2.編譯sqladvisor時依賴perconaserverclient_r, 因此需要安裝Percona-Server-shared-56。

1.3 編譯依賴項sqlparser

1. cmake -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=/usr/local/sqlparser ./
2. make && make install

注意
DCMAKE_INSTALL_PREFIX為sqlparser庫檔案和標頭檔案的安裝目錄,其中lib目錄包含庫檔案libsqlparser.so,include目錄包含所需的所有標頭檔案。
DCMAKE_INSTALL_PREFIX值儘量不要修改,後面安裝依賴這個目錄。

1.4 安裝SQLAdvisor原始碼

1. cd SQLAdvisor/sqladvisor/
2. cmake -DCMAKE_BUILD_TYPE=debug ./
3. make
4. 在本路徑下生成一個sqladvisor可執行檔案,這即是我們想要的。

2. SQLAdvisor使用

2.1 --help輸出

./sqladvisor --help
Usage:
  sqladvisor [OPTION...] sqladvisor

SQL Advisor Summary

Help Options:
  -?, --help              Show help options

Application Options:
  -f, --defaults-file     sqls file
  -u, --username          username
  -p, --password          password
  -P, --port              port
  -h, --host              host
  -d, --dbname            database name
  -q, --sqls              sqls
  -v, --verbose           1:output logs 0:output nothing

2.2 命令列傳參呼叫

./sqladvisor -h xx  -P xx  -u xx -p 'xx' -d xx -q "sql" -v 1
注意:命令列傳參時,引數名與值需要用空格隔開

2.3 配置檔案傳參呼叫

把連線資訊寫到sql.cnf中,就不用每次都輸入使用者名稱密碼之類的,也可以把要優化的sql也寫入

$> cat sql.cnf
[sqladvisor]
username=xx
password=xx
host=xx
port=xx
dbname=xx
sqls=sql1;sql2;sql3....

cmd: ./sqladvisor -f sql.cnf  -v 1

個人測試圖例

配置檔案


過程


個人整理,因水平有限,發現錯誤可以評論批評指正,一定虛心修改!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015609/viewspace-2883521/,如需轉載,請註明出處,否則將追究法律責任。

相關文章