溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

美團(tuán)點(diǎn)評(píng)SQL優(yōu)化工具 SQLAdvisor 安裝和使用

發(fā)布時(shí)間:2020-07-23 15:27:52 來源:網(wǎng)絡(luò) 閱讀:1207 作者:加州貓大叔 欄目:數(shù)據(jù)庫(kù)

SQLAdvisor 詳細(xì)介紹

SQLAdvisor 是由美團(tuán)點(diǎn)評(píng)公司北京 DBA 團(tuán)隊(duì)開發(fā)維護(hù)的 SQL 優(yōu)化工具:輸入SQL,輸出索引優(yōu)化建議。 它基于 MySQL 原生詞法解析,再結(jié)合 SQL 中的 where 條件以及字段選擇度、聚合條件、多表 Join 關(guān)系等最終輸出最優(yōu)的索引優(yōu)化建議。

SQLAdvisor 架構(gòu)流程圖:

美團(tuán)點(diǎn)評(píng)SQL優(yōu)化工具 SQLAdvisor 安裝和使用


SQLAdvisor 使用舉例

sql: SELECT id FROM crm_loan WHERE id_card = '1234567'cmd: ./sqladvisor -h xx -P xx -u xx -pxx -d xx -q "SELECT id FROM crm_loan WHERE id_card = '1234567'"SQLAdvisor輸出: alter table crm_loan add index idx_id_card(id_card)

特性:

  • 基于 MySQL 原生詞法解析,充分保證詞法解析的性能、準(zhǔn)確定以及穩(wěn)定性;

  • 支持常見的 SQL(Insert/Delete/Update/Select);

  • 支持多表 Join 并自動(dòng)邏輯選定驅(qū)動(dòng)表;

  • 支持聚合條件 Order by 和 Group by;

  • 過濾表中已存在的索引。




1. SQLAdvisor安裝

1.1 拉取最新代碼
git clone https://github.com/Meituan-Dianping/SQLAdvisor.git
1.2 安裝依賴項(xiàng)
 1. yum | apt-get  install cmake libaio-devel libffi-devel glib2 glib2-devel
 2. yum | apt-get  install --enablerepo=Percona56 Percona-Server-shared-56

注意

  1. 跟據(jù)glib安裝的路徑,修改SQLAdvisor/sqladvisor/CMakeLists.txt中的兩處include_directories針對(duì)glib設(shè)置的path。glib yum 安裝默認(rèn)不需要修改路徑

  2. 編譯sqladvisor時(shí)依賴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

1.3 編譯依賴項(xiàng)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庫(kù)文件和頭文件的安裝目錄,其中l(wèi)ib目錄包含庫(kù)文件libsqlparser.so,include目錄包含所需的所有頭文件。

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

1.4 安裝SQLAdvisor源碼
1. cd SQLAdvisor/sqladvisor/
2. cmake -DCMAKE_BUILD_TYPE=debug ./
3. make
4. 在本路徑下生成一個(gè)sqladvisor可執(zhí)行文件,這即是我們想要的。

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 命令行傳參調(diào)用
./sqladvisor -h xx  -P xx  -u xx -p 'xx' -d xx -q "sql" -v 1
注意:命令行傳參時(shí),參數(shù)名與值需要用空格隔開
2.3 配置文件傳參調(diào)用
$> 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

軟件下載地址 :http://v7.51cto.com/change.php?path=/wyfs02/M00/8E/A4/wKioL1jHsrPhSztyAavyE-3DdHk359.zip&skey=JgvctLUHe_6JK8VxuSm6CQ&stime=1489482991&sname=51CTO%E4%B8%8B%E8%BD%BD-SQLAdvisor-master.zip


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI