分析SQL给出索引优化建议的工具(美团开源)
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,分析SQL给出索引优化建议的工具(美团开源) SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析S
千家信息网最后更新 2025年11月14日分析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安全错误
数据库的锁怎样保障安全
数据库大量数据查询
景德镇主机服务器要多少钱
上海柚点科技互联网有限公司
镇网络安全管理自查自纠
行政单位 软件开发合同
服务器专用电源线
批量更新为什么数据库死锁
服务器监控要多少钱
服务器授权文件在哪里
语言属于软件开发技术吗
全国网络安全吗
网络安全追踪方法
湖北网络技术开发
网络安全员法制总决赛
大学数据库原理及应用期末考试
上海网络技术开发联系方式
怎样申请chfs数据库
医院临床网络安全管理
查看固态硬盘隐藏数据库
黑龙江交互软件开发团队
我和数据库论文
网络安全基础知识教学
网络安全与执法法律适用
网络安全和防诈骗教育
宁畅服务器 股东
数据库参照关系建立
软件开发需要用的东西
软件开发专业就业工资
湖北ipfs云服务器虚拟主机
延安市赢桥软件开发公司