千家信息网

SQLAdvisor如何安装使用

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,小编给大家分享一下SQLAdvisor如何安装使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、SQLAdvisor简
千家信息网最后更新 2025年01月22日SQLAdvisor如何安装使用

小编给大家分享一下SQLAdvisor如何安装使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一、SQLAdvisor简介
SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。目前SQLAdvisor在美团点评广泛应用,包括美团支付、酒店旅游、外卖、团购等产品线,公司内部对SQLAdvisor的开发全面转到github上,开源和内部使用保持一致。

主要功能:输出SQL索引优化建议

二、SQLAdvisor安装
1、依赖包安装
rpm -q cmake libaio-devel libffi-devel glib2 glib2-devel
yum install cmake libaio-devel libffi-devel glib2 glib2-devel
yum install --enablerepo=Percona56 Percona-Server-shared-56 (如安装percona数据库,可通过软链接形式实现库文件创建,ln -s /usr/local/mysql/lib/libperconaserverclient.so.18 /usr/lib64/libperconaserverclient.so、)
注意
跟据glib安装的路径,修改SQLAdvisor/sqladvisor/CMakeLists.txt中的两处include_directories针对glib设置的path。glib yum 安装默认不需要修改路径
编译sqladvisor时依赖perconaserverclient_r, 因此需要安装Percona-Server-shared-56。有可能需要配置软链接例如:1. cd /usr/lib64/ 2. ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so
有可能需要配置percona56 yum源: yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
2、软件包下载
https://github.com/Meituan-Dianping/SQLAdvisor
git clone https://github.com/Meituan-Dianping/SQLAdvisor.git
3、软件包安装
(1)解压安装包
unzip SQLAdvisor-master.zip
(2)安装sqlparser解析
cd SQLAdvisor-master
cmake -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=/usr/local/sqlparser ./
make
make install
注意:
DCMAKE_INSTALL_PREFIX为sqlparser库文件和头文件的安装目录,其中lib目录包含库文件libsqlparser.so,include目录包含所需的所有头文件。
DCMAKE_INSTALL_PREFIX值尽量不要修改,后面安装依赖这个目录。
(3)安装sqladvisor
cd sqladvisor/
cmake -DCMAKE_BUILD_TYPE=debug ./
make
##此时在编译目录生成可执行文件sqladvisor,可以通过ln -s sqladvisor /usr/bin/这种方式放入PATH路径中,可以通过./sqladvisor执行
三、SQLAdvisor使用
1、命令帮助文档查看
[root@node1 ~]# 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、命令行执行SQLAdvisor
[root@node1 sqladvisor]# sqladvisor -h 10.1.0.10 -u dbuser -p abc.1234 -P 3306 -d dbtest -q "select * from t2 where id=3;" -v 1
2017-03-12 08:32:31 23537 [Note] 第1步: 对SQL解析优化之后得到的SQL:select `*` AS `*` from `dbtest`.`t2` where (`id` = 3)
2017-03-12 08:32:31 23537 [Note] 第2步:开始解析where中的条件:(`id` = 3)
2017-03-12 08:32:31 23537 [Note] show index from t2
2017-03-12 08:32:31 23537 [Note] 第3步:SQLAdvisor结束!表中没有任何索引
3、SQLAdvisor配合参数文件使用
[root@node1 sqladvisor]# cat sql.cnf
[sqladvisor]
username=dbuser
password=abc.1234
host=10.1.0.10
port=3306
dbname=dbtest
sqls=select * from t2 where id=3;

[root@node1 sqladvisor]# sqladvisor -f sql.cnf -v 1
2017-03-12 08:34:03 24195 [Note] 第1步: 对SQL解析优化之后得到的SQL:select `*` AS `*` from `dbtest`.`t2` where (`id` = 3)
2017-03-12 08:34:03 24195 [Note] 第2步:开始解析where中的条件:(`id` = 3)
2017-03-12 08:34:03 24195 [Note] show index from t2
2017-03-12 08:34:03 24195 [Note] 第3步:SQLAdvisor结束!表中没有任何索引

四、SQLAdvisor附录
1、错误信息以及解决方案
错误信息01:
Scanning dependencies of target sqladvisor
[100%] Building CXX object CMakeFiles/sqladvisor.dir/main.cc.o
Linking CXX executable sqladvisor
/usr/bin/ld: cannot find -lperconaserverclient_r
collect2: ld returned 1 exit status
make[2]: *** [sqladvisor] Error 1
make[1]: *** [CMakeFiles/sqladvisor.dir/all] Error 2
make: *** [all] Error 2
##由于缺少percona的库文件libperconaserverclient_r.so或者在/usr/lib64下不存在,解决方案就是安装percona库文件包或通过软链接形式ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so
2、结构流程图(参考源码文档)




以上是"SQLAdvisor如何安装使用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

库文件 目录 索引 文件 条件 建议 篇文章 路径 链接 信息 公司 内容 可以通过 命令 形式 文档 方案 解决方案 软件 软件包 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 全市网络安全调研报告 铁锈战争在哪找服务器 网络安全危机后市怎么样 数据库sharding 腾讯服务器保留微信多久聊天记录 数据库文件的逻辑结构是什么文件 ios软件开发师月薪多少 apk电视软件开发 梦幻西游姑苏城服务器 利用宏使用模板导数据库 asp.net的服务器 数据跨境传输的网络安全 华为2280服务器光盘快捷键 数据库工具类作用 网络技术方案运维 博山企业管理软件开发定制开发 浙江1u服务器机箱怎么用 智能手机当文件服务器 关于网络安全的有哪些问题 软件开发怎么去了解用户需求 服务器安装系统识别不了u盘 江苏在线网络技术开发机构 狐狸样子的数据库 江苏超频服务器成本价 oracle创建数据库实例 数据库结构中自上而下 mc直连服务器地址 表格的内容如何保存进入数据库 一念逍遥一直读取服务器失败 上海交友软件开发需要多少钱
0