分析SQL给出索引优化建议的工具(美团开源)
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,分析SQL给出索引优化建议的工具(美团开源) SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析S
千家信息网最后更新 2024年11月23日分析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安全错误
数据库的锁怎样保障安全
吉林通信软件开发服务标准
郴州市网络安全知识竞赛通知
网络安全和电信反诈ppt小学
软件开发考试试卷
如何在表格中设置数据库日期
二手书交易数据库课程设计
发动机试车数据库设计
软件开发工程师中兴
贵州数据中心服务器批发厂家
上海落实网络安全法
软件开发的计算机基础课
中国移动的网络技术类
安徽银行软件开发公司
物流管理系统软件开发需求
软件开发推荐国峰软件
广东专业服务器供应商
战地5社区服务器突然卡住不动
数据库怎么改变表中的数据类型
宝安区网络技术优点
打座机无法连接服务器
网络安全方法措施
数理化不好能学软件开发吗
数据库的耦合是指上下级
西部数据云服务器
腾讯数据库破解
软件开发的付款方式
暴雪亚洲服务器注册账号
网络安全保障网络安全
买完服务器我该怎么使用
mysq数据库查看表数据