分析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優化儲存引擎索引
- 一條sql語句的建議調優分析SQL
- SQL優化-索引SQL優化索引
- ORACLE SQL 效能優化的一些建議OracleSQL優化
- 在EM中使用SQL Tuning Advisor(SQL優化建議)優化SQLSQL優化
- 使用SQL調整顧問得到SQL優化建議SQL優化
- oracle優化sql語句的一些建議Oracle優化SQL
- Redis優化建議Redis優化
- EntityFramework 優化建議Framework優化
- Mysql優化建議MySql優化
- laravel-soar(2.x) - 自動監控輸出 SQL 優化建議、輔助 laravel 應用 SQL 優化LaravelSQL優化
- Oracle對索引分析的優化Oracle索引優化
- 給DBA的SQL Server培訓建議PHSQLServer
- 聊聊索引和SQL優化索引SQL優化
- SQL優化--函式索引SQL優化函式索引
- 【SQL優化】SQL優化工具SQL優化
- sql優化之多列索引的使用SQL優化索引
- SQL語句優化的34條建議(轉-浪花七八朵 )SQL優化
- Zabbix 5.0 優化建議優化
- html前端優化建議HTML前端優化
- 頁面優化建議優化
- 優化MySQL的21個建議優化MySql
- mysql索引優化和TCP協議MySql索引優化TCP協議
- 小米 SOAR 開源SQL優化工具安裝SQL優化
- SQL優化之利用索引排序SQL優化索引排序
- 在EM中使用SQL Access Advisor(SQL訪問建議)優化SQLSQL優化
- 記一次資料庫的分析和優化建議資料庫優化
- SQL優化(二)(聯合索引的使用)SQL優化索引
- 優化 Webpack 構建效能的幾點建議優化Web
- 優化Webpack構建效能的幾點建議優化Web
- 針對行動網路開發的優化建議優化
- 關於Android開發的40條優化建議Android優化
- SQLServer索引優化(3):對於建組合索引的要求SQLServer索引優化
- Mysql效能優化:如何給字串加索引?MySql優化字串索引
- MySQL 調優/優化的 100 個建議MySql優化
- MyFlash——美團點評的開源MySQL閃回工具MySql
- 資料庫優化建議資料庫優化
- UITableView效能優化的幾點建議UIView優化