(MYSQL)SQL優化工具 - SQLAdvisor 安裝使用詳解


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

 

二、SQLAdvisor安裝

  1、拉取最新代碼 

  git clone https://github.com/Meituan-Dianping/SQLAdvisor.git

  2、 安裝依賴項

  yum install cmake libaio-devel libffi-devel glib2 glib2-devel

  yum install --enablerepo=Percona56 Percona-Server-shared-56

  注意:

    1. 跟據glib安裝的路徑,修改SQLAdvisor/sqladvisor/CMakeLists.txt中的兩處include_directories針對glib設置的path。glib yum 安裝默認不需要修改路徑

    2. 編譯sqladvisor時依賴perconaserverclient_r, 因此需要安裝Percona-Server-shared-56。有可能需要配置軟鏈接例如:1. cd /usr/lib64/ 2. ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so

    3. 有可能需要配置percona56 yum源: yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

 

  3、編譯依賴項sqlparser

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

  

  注意:

    1. DCMAKE_INSTALL_PREFIX為sqlparser庫文件和頭文件的安裝目錄,其中lib目錄包含庫文件libsqlparser.so,include目錄包含所需的所有頭文件。

    

    2. DCMAKE_INSTALL_PREFIX值盡量不要修改,后面安裝依賴這個目錄。

 

  4、安裝SQLAdvisor源碼

  1. cd SQLAdvisor/sqladvisor/
  2. cmake -DCMAKE_BUILD_TYPE=debug ./
  3. make

    在本路徑下生成一個sqladvisor可執行文件,這即是我們想要的。可以通過ln -s sqladvisor /usr/bin/這種方式放入PATH路徑中,通過./sqladvisor執行

 

三、SQLAdvisor使用

  1、命令幫助文檔查看

[root@lifeyoyo sqladvisor]# ./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

./sqladvisor  -h 192.168.2.117 -u root -p 123456 -P 3306 -d volunteer_pu -q "select count(*) as count from activity_apply as a where a.delStatus= 0 and a.activity=66 and a.status=1" -v 1

  3、配合文件參數使用

./sqladvisor -f sql.cnf  -v 1

    參數文件格式:

[sqladvisor]
username=root password=123456 host=192.168.2.117 port=3306 dbname=volunteer_pu sqls=select count(*) as count from activity_apply as a where a.delStatus= 0 and a.activity=66 and a.status=1;

 

四、錯誤信息以及解決方案

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

 

參考鏈接: 

http://blog.itpub.net/27067062/viewspace-2135172 
http://www.oschina.net/news/82725/sqladvisor-opensource?nocache=1489115095712

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM