SQL優化工具SQLAdvisor使用


一、簡介
在數據庫運維過程中,優化SQL是業務團隊與DBA團隊的日常任務。例行SQL優化,不僅可以提升程序性能,還能夠降低線上故障的概率。

目前常用的SQL優化方式包括但不限於:業務層優化、SQL邏輯優化、索引優化等。其中索引優化通常通過調整索引或新增索引從而達到SQL優化的目的。索引優化往往可以在短時間內產生非常巨大的效果。如果能夠將索引優化轉化成工具化、標准化的流程,減少人工介入的工作量,無疑會大大提高DBA的工作效率

SQLAdvisor是由美團點評公司DBA團隊(北京)開發維護的SQL優化工具:輸入SQL,輸出索引優化建議。 它基於MySQL原生詞法解析,再結合SQL中的where條件以及字段選擇度、聚合條件、多表Join關系等最終輸出最優的索引優化建議。目前SQLAdvisor在公司內部大量使用,較為成熟、穩定。

美團點評致力於將SQLAdvisor打造成一款高智能化SQL優化工具,選擇將已經在公司內部使用較為成熟的、穩定的SQLAdvisor項目開源,github地址。希望與業內有類似需求的團隊,一起打造一款優秀的SQL優化產品。

目前SQLAdvisor在美團點評內部廣泛應用,公司內部對SQLAdvisor的開發全面轉到github上,開源和內部使用保持一致。

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

GitHup地址:https://github.com/Meituan-Dianping/SQLAdvisor

二、SQLAdvisor安裝
2.1 拉取最新代碼

$ git clone https://github.com/Meituan-Dianping/SQLAdvisor.git
2.2 安裝依賴項

$ yum install cmake libaio-devel libffi-devel glib2 glib2-devel
跟據glib安裝的路徑,修改SQLAdvisor/sqladvisor/CMakeLists.txt中的兩處include_directories針對glib設置的path。glib yum安裝默認不需要修改路徑。

另外,編譯sqladvisor時依賴perconaserverclient_r, 因此需要安裝Percona-Server-shared-56。

# 配置Percona56 yum源;
$ yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
 
# 安裝Percona-Server-shared-56;
$ yum install Percona-Server-shared-56
如果yum安裝不行,可以采用rpm包手動安裝。參考:https://github.com/Meituan-Dianping/SQLAdvisor/issues/12

###########采用rpm包手動安裝########## 

下載 tar 包
wget https://www.percona.com/downloads/Percona-Server-5.6/Percona-Server-5.6.25-73.1/binary/redhat/6/x86_64/Percona-Server-5.6.25-73.1-r07b797f-el6-x86_64-bundle.tar
解壓
tar -zxvf Percona-Server-5.6.25-73.1-r07b797f-el6-x86_64-bundle.tar
找到對應包,安裝即可。
rpm -ivh Percona-Server-shared-56-5.6.25-rel73.1.el6.x86_64.rpm

我使用這個方案:
解壓的時候報錯了:
tar -zxvf Percona-Server-5.6.25-73.1-r07b797f-el6-x86_64-bundle.tar

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

然后換成:tar -xvf Percona-Server-5.6.25-73.1-r07b797f-el6-x86_64-bundle.tar(去掉z參數)

之后執行安裝:
warning: Percona-Server-shared-56-5.6.25-rel73.1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY

##################################

需要配置軟鏈接:

$ rpm -ql Percona-Server-shared-56
/usr/lib64/libperconaserverclient.so.18
/usr/lib64/libperconaserverclient.so.18.1.0
/usr/lib64/libperconaserverclient_r.so.18
/usr/lib64/libperconaserverclient_r.so.18.1.0

$ cd /usr/lib64/
$ ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so

2.3 編譯依賴項sqlparser

$ cd /root/SQLAdvisor/
$ 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值盡量不要修改,后面安裝依賴這個目錄。
2.4 安裝SQLAdvisor源碼

$ cd /root/SQLAdvisor/sqladvisor/

$ cmake -DCMAKE_BUILD_TYPE=debug ./
$ make
 

安裝完成后,在本路徑下生成一個sqladvisor可執行文件,這即是我們想要的。

可以把可執行文件sqladvisor復制到PATH路徑中。


免責聲明!

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



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