解析SQL给出索引优化提议的工具
发布时间:2022-03-26 11:18:03 所属栏目:MySql教程 来源:互联网
导读:SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。目前SQLAdvisor在美团点评内部广泛应用,公司内部对S
SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。目前SQLAdvisor在美团点评内部广泛应用,公司内部对SQLAdvisor的开发全面转到github上,开源和内部使用保持一致。 主要功能:输出SQL索引优化建议 安装测试的详细过程 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 (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |