分析SQL给出索引优化建议的工具(美团开源)
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,分析SQL给出索引优化建议的工具(美团开源) SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析S
千家信息网最后更新 2025年02月06日分析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安全错误
数据库的锁怎样保障安全
湖南衡阳计算机网络技术应用
爻谦软件开发工作室
涉外企业知识产权数据库
数据库取库
银行网络技术类员工工资
河源精益软件开发
对于软件开发的认知
温州企业软件开发需要学什么
关于网络安全大赛的书
医院网络技术人员卖统方
ARM软件开发工具有什么
sql数据库课件
沈阳软件开发国企
网络安全被执法案例
孝义潮尚互联网科技
网络安全的威胁与防御
运营商网络安全培训需求
畅捷通t3数据库备份文件在哪里
缓存caffeine 数据库
数据库地址表
数据库如何计算平均年龄
软件开发视频演示要求
网络安全威胁处置办法
人事考勤薪资系统软件开发
服务器怎么开通3306端口
大专网络安全毕业设计
国家网络安全系统顶尖人才
华厦恒生互联网科技业
网络安全转游戏开发
内存数据库 fastdb