分析SQL给出索引优化建议的工具(美团开源)
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,分析SQL给出索引优化建议的工具(美团开源) SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析S
千家信息网最后更新 2026年11月02日分析SQL给出索引优化建议的工具(美团开源)分析SQL给出索引优化建议的工具(美团开源)
SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。目前SQLAdvisor在美团点评内部广泛应用,公司内部对SQLAdvisor的开发全面转到github上,开源和内部使用保持一致。
主要功能:输出SQL索引优化建议
安装测试的详细过程 开源介绍 https://www.oschina.net/news/82725/sqladvisor-opensource?from=20170312
下载地址 https://github.com/Meituan-Dianping/SQLAdvisor/
1. SQLAdvisor安装
以redhat6系统为例
1.1 拉取最新代码 前提是联网,已安装git工具(yum install git) git clone https://github.com/Meituan-Dianping/SQLAdvisor.git
1.2 安装依赖项
1.2.1. yum install cmake libaio-devel libffi-devel glib2 glib2-devel 1.2.2. 配置percona56 yum源: yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
yum install --enablerepo=Percona56 Percona-Server-shared-56 ##Percona56 是yum中配置的名字
1.2.3.配置软链接 1. cd /usr/lib64/ 2. ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so
注意 1.跟据glib安装的路径,修改SQLAdvisor/sqladvisor/CMakeLists.txt中的两处include_directories针对glib设置的path。glib yum 安装默认不需要修改路径 2.编译sqladvisor时依赖perconaserverclient_r, 因此需要安装Percona-Server-shared-56。
1.3 编译依赖项sqlparser
1. cmake -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=/usr/local/sqlparser ./ 2. make && make install
注意 DCMAKE_INSTALL_PREFIX为sqlparser库文件和头文件的安装目录,其中lib目录包含库文件libsqlparser.so,include目录包含所需的所有头文件。 DCMAKE_INSTALL_PREFIX值尽量不要修改,后面安装依赖这个目录。
1.4 安装SQLAdvisor源码
1. cd SQLAdvisor/sqladvisor/ 2. cmake -DCMAKE_BUILD_TYPE=debug ./ 3. make 4. 在本路径下生成一个sqladvisor可执行文件,这即是我们想要的。
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 命令行传参调用
./sqladvisor -h xx -P xx -u xx -p 'xx' -d xx -q "sql" -v 1 注意:命令行传参时,参数名与值需要用空格隔开
2.3 配置文件传参调用
把连接信息写到sql.cnf中,就不用每次都输入用户名密码之类的,也可以把要优化的sql也写入
$> 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
个人测试图例
配置文件
过程

个人整理,因水平有限,发现错误可以评论批评指正,一定虚心修改!
SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。目前SQLAdvisor在美团点评内部广泛应用,公司内部对SQLAdvisor的开发全面转到github上,开源和内部使用保持一致。
主要功能:输出SQL索引优化建议
安装测试的详细过程 开源介绍 https://www.oschina.net/news/82725/sqladvisor-opensource?from=20170312
下载地址 https://github.com/Meituan-Dianping/SQLAdvisor/
1. SQLAdvisor安装
以redhat6系统为例
1.1 拉取最新代码 前提是联网,已安装git工具(yum install git) git clone https://github.com/Meituan-Dianping/SQLAdvisor.git
1.2 安装依赖项
1.2.1. yum install cmake libaio-devel libffi-devel glib2 glib2-devel 1.2.2. 配置percona56 yum源: yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
yum install --enablerepo=Percona56 Percona-Server-shared-56 ##Percona56 是yum中配置的名字
1.2.3.配置软链接 1. cd /usr/lib64/ 2. ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so
注意 1.跟据glib安装的路径,修改SQLAdvisor/sqladvisor/CMakeLists.txt中的两处include_directories针对glib设置的path。glib yum 安装默认不需要修改路径 2.编译sqladvisor时依赖perconaserverclient_r, 因此需要安装Percona-Server-shared-56。
1.3 编译依赖项sqlparser
1. cmake -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=/usr/local/sqlparser ./ 2. make && make install
注意 DCMAKE_INSTALL_PREFIX为sqlparser库文件和头文件的安装目录,其中lib目录包含库文件libsqlparser.so,include目录包含所需的所有头文件。 DCMAKE_INSTALL_PREFIX值尽量不要修改,后面安装依赖这个目录。
1.4 安装SQLAdvisor源码
1. cd SQLAdvisor/sqladvisor/ 2. cmake -DCMAKE_BUILD_TYPE=debug ./ 3. make 4. 在本路径下生成一个sqladvisor可执行文件,这即是我们想要的。
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 命令行传参调用
./sqladvisor -h xx -P xx -u xx -p 'xx' -d xx -q "sql" -v 1 注意:命令行传参时,参数名与值需要用空格隔开
2.3 配置文件传参调用
把连接信息写到sql.cnf中,就不用每次都输入用户名密码之类的,也可以把要优化的sql也写入
$> 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
个人测试图例
配置文件

过程

个人整理,因水平有限,发现错误可以评论批评指正,一定虚心修改!
文件
配置
建议
索引
目录
工具
分析
路径
个人
公司
命令
库文件
条件
过程
开发
测试
编译
输出
一致
不用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
百单网互联网科技有限公司
上海喔噻互联网科技有限公司
电子科技大学互联网
苏州大垚互联网科技
火传媒上海互联网科技
互联网高科技股票
四川狮子座互联网科技
济南华为互联网科技产业总部基地
速维有品互联网信息科技(苏州)有限公司
洛阳昕诺飞互联网科技有限公司
民营互联网公司国防科技
科技赋能视角下互联网保险发展
为客找房互联网科技公司怎么样
南通创西澳互联网科技有限公司
上海钢联属于互联网科技股吗
互联网科技实习生岗位
黑云互联网科技有限公司
互联网营销推广黑科技
北京互联网科技类企业分布
华人运通互联网科技公司
互联网加科技
云电互联网科技
甘肃拓世互联网科技有限公司
浙南科技城互联网大厦建设工程
爱医互联网络科技
城市宝互联网科技有限公司
2021世界互联网领先科技成果发布
容联科技互联网电商
版纳互联网科技选哪家
易租星互联网科技有限公司