SQL最佳化工具(MYSQL)——SQLAdvisor安裝使用
一、SQLAdvisor簡介
SQLAdvisor是由美團點評公司技術工程部DBA團隊(北京)開發維護的一個分析SQL給出索引最佳化建議的工具。它基於MySQL原生態詞法解析,結合分析SQL中的where條件、聚合條件、多表Join關係 給出索引最佳化建議。目前SQLAdvisor在美團點評廣泛應用,包括美團支付、酒店旅遊、外賣、團購等產品線,公司內部對SQLAdvisor的開發全面轉到github上,開源和內部使用保持一致。
1、依賴包安裝
rpm -q cmake libaio-devel libffi-devel glib2 glib2-devel
yum install cmake libaio-devel libffi-devel glib2 glib2-devel
yum install --enablerepo=Percona56 Percona-Server-shared-56 (如安裝percona資料庫,可透過軟連結形式實現庫檔案建立,ln -s /usr/local/mysql/lib/libperconaserverclient.so.18 /usr/lib64/libperconaserverclient.so、)
注意
跟據glib安裝的路徑,修改SQLAdvisor/sqladvisor/CMakeLists.txt中的兩處include_directories針對glib設定的path。glib yum 安裝預設不需要修改路徑
編譯sqladvisor時依賴perconaserverclient_r, 因此需要安裝Percona-Server-shared-56。有可能需要配置軟連結例如:1. cd /usr/lib64/ 2. ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so
有可能需要配置percona56 yum源: yum install
2、軟體包下載
git clone
3、軟體包安裝
(1)解壓安裝包
unzip SQLAdvisor-master.zip
(2)安裝sqlparser解析
cd SQLAdvisor-master
cmake -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=/usr/local/sqlparser ./
make
make install
注意:
DCMAKE_INSTALL_PREFIX為sqlparser庫檔案和標頭檔案的安裝目錄,其中lib目錄包含庫檔案libsqlparser.so,include目錄包含所需的所有標頭檔案。
DCMAKE_INSTALL_PREFIX值儘量不要修改,後面安裝依賴這個目錄。
(3)安裝sqladvisor
cd sqladvisor/
cmake -DCMAKE_BUILD_TYPE=debug ./
make
##此時在編譯目錄生成可執行檔案sqladvisor,可以透過ln -s sqladvisor /usr/bin/這種方式放入PATH路徑中,可以透過./sqladvisor執行
三、SQLAdvisor使用
1、命令幫助文件檢視
[root@node1 ~]# 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、命令列執行SQLAdvisor
[root@node1 sqladvisor]# sqladvisor -h 10.1.0.10 -u dbuser -p abc.1234 -P 3306 -d dbtest -q "select * from t2 where id=3;" -v 1
2017-03-12 08:32:31 23537 [Note] 第1步: 對SQL解析最佳化之後得到的SQL:select `*` AS `*` from `dbtest`.`t2` where (`id` = 3)
2017-03-12 08:32:31 23537 [Note] 第2步:開始解析where中的條件:(`id` = 3)
2017-03-12 08:32:31 23537 [Note] show index from t2
2017-03-12 08:32:31 23537 [Note] 第3步:SQLAdvisor結束!表中沒有任何索引
3、SQLAdvisor配合引數檔案使用
[root@node1 sqladvisor]# cat sql.cnf
[sqladvisor]
username=dbuser
password=abc.1234
host=10.1.0.10
port=3306
dbname=dbtest
sqls=select * from t2 where id=3;
[root@node1 sqladvisor]# sqladvisor -f sql.cnf -v 1
2017-03-12 08:34:03 24195 [Note] 第1步: 對SQL解析最佳化之後得到的SQL:select `*` AS `*` from `dbtest`.`t2` where (`id` = 3)
2017-03-12 08:34:03 24195 [Note] 第2步:開始解析where中的條件:(`id` = 3)
2017-03-12 08:34:03 24195 [Note] show index from t2
2017-03-12 08:34:03 24195 [Note] 第3步:SQLAdvisor結束!表中沒有任何索引
四、SQLAdvisor附錄
1、錯誤資訊以及解決方案
錯誤資訊01:
Scanning dependencies of target sqladvisor
[100%] Building CXX object CMakeFiles/sqladvisor.dir/main.cc.o
Linking CXX executable sqladvisor
/usr/bin/ld: cannot find -lperconaserverclient_r
collect2: ld returned 1 exit status
make[2]: *** [sqladvisor] Error 1
make[1]: *** [CMakeFiles/sqladvisor.dir/all] Error 2
make: *** [all] Error 2
##由於缺少percona的庫檔案libperconaserverclient_r.so或者在/usr/lib64下不存在,解決方案就是安裝percona庫檔案包或透過軟連結形式ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so
2、結構流程圖(參考原始碼文件)
SQLAdvisor是由美團點評公司技術工程部DBA團隊(北京)開發維護的一個分析SQL給出索引最佳化建議的工具。它基於MySQL原生態詞法解析,結合分析SQL中的where條件、聚合條件、多表Join關係 給出索引最佳化建議。目前SQLAdvisor在美團點評廣泛應用,包括美團支付、酒店旅遊、外賣、團購等產品線,公司內部對SQLAdvisor的開發全面轉到github上,開源和內部使用保持一致。
主要功能:輸出SQL索引最佳化建議
專案 GitHub 地址:
二、SQLAdvisor安裝1、依賴包安裝
rpm -q cmake libaio-devel libffi-devel glib2 glib2-devel
yum install cmake libaio-devel libffi-devel glib2 glib2-devel
yum install --enablerepo=Percona56 Percona-Server-shared-56 (如安裝percona資料庫,可透過軟連結形式實現庫檔案建立,ln -s /usr/local/mysql/lib/libperconaserverclient.so.18 /usr/lib64/libperconaserverclient.so、)
注意
跟據glib安裝的路徑,修改SQLAdvisor/sqladvisor/CMakeLists.txt中的兩處include_directories針對glib設定的path。glib yum 安裝預設不需要修改路徑
編譯sqladvisor時依賴perconaserverclient_r, 因此需要安裝Percona-Server-shared-56。有可能需要配置軟連結例如:1. cd /usr/lib64/ 2. ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so
有可能需要配置percona56 yum源: yum install
2、軟體包下載
git clone
3、軟體包安裝
(1)解壓安裝包
unzip SQLAdvisor-master.zip
(2)安裝sqlparser解析
cd SQLAdvisor-master
cmake -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=/usr/local/sqlparser ./
make
make install
注意:
DCMAKE_INSTALL_PREFIX為sqlparser庫檔案和標頭檔案的安裝目錄,其中lib目錄包含庫檔案libsqlparser.so,include目錄包含所需的所有標頭檔案。
DCMAKE_INSTALL_PREFIX值儘量不要修改,後面安裝依賴這個目錄。
(3)安裝sqladvisor
cd sqladvisor/
cmake -DCMAKE_BUILD_TYPE=debug ./
make
##此時在編譯目錄生成可執行檔案sqladvisor,可以透過ln -s sqladvisor /usr/bin/這種方式放入PATH路徑中,可以透過./sqladvisor執行
三、SQLAdvisor使用
1、命令幫助文件檢視
[root@node1 ~]# 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、命令列執行SQLAdvisor
[root@node1 sqladvisor]# sqladvisor -h 10.1.0.10 -u dbuser -p abc.1234 -P 3306 -d dbtest -q "select * from t2 where id=3;" -v 1
2017-03-12 08:32:31 23537 [Note] 第1步: 對SQL解析最佳化之後得到的SQL:select `*` AS `*` from `dbtest`.`t2` where (`id` = 3)
2017-03-12 08:32:31 23537 [Note] 第2步:開始解析where中的條件:(`id` = 3)
2017-03-12 08:32:31 23537 [Note] show index from t2
2017-03-12 08:32:31 23537 [Note] 第3步:SQLAdvisor結束!表中沒有任何索引
3、SQLAdvisor配合引數檔案使用
[root@node1 sqladvisor]# cat sql.cnf
[sqladvisor]
username=dbuser
password=abc.1234
host=10.1.0.10
port=3306
dbname=dbtest
sqls=select * from t2 where id=3;
[root@node1 sqladvisor]# sqladvisor -f sql.cnf -v 1
2017-03-12 08:34:03 24195 [Note] 第1步: 對SQL解析最佳化之後得到的SQL:select `*` AS `*` from `dbtest`.`t2` where (`id` = 3)
2017-03-12 08:34:03 24195 [Note] 第2步:開始解析where中的條件:(`id` = 3)
2017-03-12 08:34:03 24195 [Note] show index from t2
2017-03-12 08:34:03 24195 [Note] 第3步:SQLAdvisor結束!表中沒有任何索引
四、SQLAdvisor附錄
1、錯誤資訊以及解決方案
錯誤資訊01:
Scanning dependencies of target sqladvisor
[100%] Building CXX object CMakeFiles/sqladvisor.dir/main.cc.o
Linking CXX executable sqladvisor
/usr/bin/ld: cannot find -lperconaserverclient_r
collect2: ld returned 1 exit status
make[2]: *** [sqladvisor] Error 1
make[1]: *** [CMakeFiles/sqladvisor.dir/all] Error 2
make: *** [all] Error 2
##由於缺少percona的庫檔案libperconaserverclient_r.so或者在/usr/lib64下不存在,解決方案就是安裝percona庫檔案包或透過軟連結形式ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so
2、結構流程圖(參考原始碼文件)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27067062/viewspace-2135172/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQLAdvisor安裝(CentOS 6)SQLCentOS
- 【Mysql】使用jemalloc(或tcmalloc)最佳化MYSQL(安裝步驟)MySql
- sql最佳化(mysql)MySql
- 最佳化安裝 mysql+apache+php(轉)MySqlApachePHP
- 【工具】MySQL 安裝利器---SandboxMySql
- Mysql安裝使用教程MySql
- windows安裝使用mysqlWindowsMySql
- MySQL Inception安裝使用MySql
- 【Oracle】常用工具-oracle sql developer快速安裝使用教程OracleSQLDeveloper
- 小米 sql 最佳化工具SQL
- sql最佳化工具SQLTSQL
- mysql企業備份工具(MEB)之mysqlbackup安裝及使用MySql
- Mysql管理必備工具maatkit(安裝)MySql
- MySQL系列第二篇:MySQL視覺化工具Navicat for MySQL安裝配置和使用MySql視覺化
- mysql資料庫全家桶(安裝與如何寫sql,如何使用)MySql資料庫
- sql最佳化:使用sql profile最佳化sql語句SQL
- MySQL學習(二)圖形介面管理工具Navicat for MySQL安裝和使用MySql
- sql最佳化工具之--sqlTSQL
- 【原創】安裝和使用TPCC-MySQL工具遇到的問題MySql
- sql server匯入mysql,使用工具SQLyogServerMySql
- BBED工具的安裝使用(二)
- BBED工具的安裝使用(一)
- 安裝和使用LogMiner工具
- 使用docker安裝mysql和redisDockerMySqlRedis
- 如何使用APT庫安裝MySQLAPTMySql
- Linux下安裝使用MySQLLinuxMySql
- Linux安裝MySQL(使用yum)LinuxMySql
- Navicat for MySQL安裝及使用教程MySql
- debian安裝及使用mysqlMySql
- 小米 SOAR 開源SQL優化工具安裝SQL優化
- 【MySQL資料庫】MySQL5.7安裝與配置、視覺化工具安裝和破解MySql資料庫視覺化
- mysql資料庫SQL最佳化MySql資料庫
- centos下安裝JAVA開發工具(3)——MysqlCentOSJavaMySql
- MySQL系列第三篇:MySQL工具之SQLYog安裝配置MySql
- protobuf 編譯工具安裝與使用編譯
- ELK esrally 壓測工具安裝使用
- 安裝使用OSWatcher監控工具
- svn命令列工具安裝使用(windows)命令列Windows