分析SQL給出索引優化建議的工具(美團開源)
分析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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql優化 | 儲存引擎,建表,索引,sql的優化建議MySql優化儲存引擎索引
- laravel-soar(2.x) - 自動監控輸出 SQL 優化建議、輔助 laravel 應用 SQL 優化LaravelSQL優化
- 給DBA的SQL Server培訓建議PHSQLServer
- SQL優化之利用索引排序SQL優化索引排序
- EntityFramework 優化建議Framework優化
- Redis優化建議Redis優化
- 小米 SOAR 開源SQL優化工具安裝SQL優化
- 給PHP開發者的建議PHP
- mysql索引優化和TCP協議MySql索引優化TCP協議
- SQL優化案例-正確的使用索引(二)SQL優化索引
- html前端優化建議HTML前端優化
- Zabbix 5.0 優化建議優化
- SQLServer索引優化(3):對於建組合索引的要求SQLServer索引優化
- Mysql效能優化:如何給字串加索引?MySql優化字串索引
- SQL優化案例-分割槽索引之無字首索引(六)SQL優化索引
- 資料庫效能優化-索引與sql相關優化資料庫優化索引SQL
- 美團外賣開源路由框架 WMRouter 原始碼分析路由框架原始碼
- 針對SQL Server的最佳化建議SQLServer
- UITableView效能優化的幾點建議UIView優化
- 資料庫優化建議資料庫優化
- 《MySQL慢查詢優化》之SQL語句及索引優化MySql優化索引
- SQL優化之統計資訊和索引SQL優化索引
- SQL優化案例-自定義函式索引(五)SQL優化函式索引
- SQLServer索引優化(1):對於有order by欄位的建索引策略SQLServer索引優化
- SQL精華總結索引型別優化SQL優化事務大表優化思維導圖❤️SQL索引型別優化
- 深入淺出的webpack構建工具---HappyPack優化構建(九)WebAPP優化
- 頁面優化的一些建議優化
- Mysql慢SQL分析及優化MySql優化
- 【建議】 暫提三種優化優化
- 理解索引:索引優化索引優化
- 轉戰laravel文件,感謝各位大佬給出的建議Laravel
- 迷茫中,求助大佬們幫忙給出建議
- 【Go】string 優化誤區及建議Go優化
- 如何快速有效的學習 Python ?阿里高階開發工程師給出建議Python阿里工程師
- 美團掃碼付小程式的優化實踐優化
- PHP開發內部規範,歡迎提出優化建議PHP優化
- OGG複製程式延遲高,優化方法二(存在索引),SQL選擇不好的索引優化索引SQL
- Mysql索引優化之索引的分類MySql索引優化