(MYSQL)SQL优化工具 - SQLAdvisor 安装使用详解

本文介绍了一个由美团点评DBA团队开发的SQL优化工具——SQLAdvisor。该工具能够为用户提供SQL索引优化建议,并已在多个产品线中得到广泛应用。文章详细阐述了SQLAdvisor的安装步骤、命令行使用方法及常见错误解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、SQLAdvisor简介
  SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。目前SQLAdvisor在美团点评广泛应用,包括美团支付、酒店旅游、外卖、团购等产品线,公司内部对SQLAdvisor的开发全面转到github上,开源和内部使用保持一致。

二、SQLAdvisor安装

1、拉取最新代码

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

2、 安装依赖项

1. yum install cmake libaio-devel libffi-devel glib2 glib2-devel
2. 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值