美团点评SQL优化工具 SQLAdvisor 安装和使用
admin
2023-05-27 05:01:12
0

SQLAdvisor 详细介绍

SQLAdvisor 是由美团点评公司北京 DBA 团队开发维护的 SQL 优化工具:输入SQL,输出索引优化建议。 它基于 MySQL 原生词法解析,再结合 SQL 中的 where 条件以及字段选择度、聚合条件、多表 Join 关系等最终输出最优的索引优化建议。

SQLAdvisor 架构流程图:

美团点评SQL优化工具 SQLAdvisor 安装和使用


SQLAdvisor 使用举例

sql: SELECT id FROM crm_loan WHERE id_card = '1234567'cmd: ./sqladvisor -h xx -P xx -u xx -pxx -d xx -q "SELECT id FROM crm_loan WHERE id_card = '1234567'"SQLAdvisor输出: alter table crm_loan add index idx_id_card(id_card)

特性:

  • 基于 MySQL 原生词法解析,充分保证词法解析的性能、准确定以及稳定性;

  • 支持常见的 SQL(Insert/Delete/Update/Select);

  • 支持多表 Join 并自动逻辑选定驱动表;

  • 支持聚合条件 Order by 和 Group by;

  • 过滤表中已存在的索引。




1. SQLAdvisor安装

1.1 拉取最新代码
git clone https://github.com/Meituan-Dianping/SQLAdvisor.git
1.2 安装依赖项
 1. yum | apt-get  install cmake libaio-devel libffi-devel glib2 glib2-devel
 2. yum | apt-get  install --enablerepo=Percona56 Percona-Server-shared-56

注意

  1. 跟据glib安装的路径,修改SQLAdvisor/sqladvisor/CMakeLists.txt中的两处include_directories针对glib设置的path。glib yum 安装默认不需要修改路径

  2. 编译sqladvisor时依赖perconaserverclient_r, 因此需要安装Percona-Server-shared-56。有可能需要配置软链接例如:1. cd /usr/lib64/ 2. ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so

  3. 有可能需要配置percona56 yum源: yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

1.3 编译依赖项sqlparser
1. cmake -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=/usr/local/sqlparser ./
2. make && make install

注意

  1. DCMAKE_INSTALL_PREFIX为sqlparser库文件和头文件的安装目录,其中lib目录包含库文件libsqlparser.so,include目录包含所需的所有头文件。

  2. 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 配置文件传参调用
$> 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

软件下载地址 :http://v7.51cto.com/change.php?path=/wyfs02/M00/8E/A4/wKioL1jHsrPhSztyAavyE-3DdHk359.zip&skey=JgvctLUHe_6JK8VxuSm6CQ&stime=1489482991&sname=51CTO%E4%B8%8B%E8%BD%BD-SQLAdvisor-master.zip


相关内容

热门资讯

凤凰连线:为何伊朗称“即使与阿... 据凤凰卫视报道,伊朗知情人士当地时间周三透露称,伊朗与阿曼就霍尔木兹海峡船舶通行安排,可能达成协议,...
伊朗称与阿曼就霍尔木兹海峡航运... 据凤凰卫视报道,伊朗外交部发言人巴加埃5日表示,伊朗与阿曼已就霍尔木兹海峡拟定航道的地理坐标达成一致...
予非知识图谱大模型完成生成式人... 近日,山东省网信办正式公布生成式人工智能服务备案名录,潍坊华创信息技术有限公司自主研发的“予非知识图...
学习语丨人工智能应该是造福全人... 近日,习近平总书记向2025世界智能产业博览会致贺信,指出:“人工智能应该是造福全人类的国际公共产品...
2026年交易全链路可追溯的智... 2026-08-05 12:10:48 作者:狼叫兽 2026年被视作智能体支付规模化落地的关键之年...
百余名中外专家齐聚海西 共话人... 8月4日,人工智能赋能的天文学开放科学会议(第二届)在青海省海西州盛大启幕。来自中国、美国、英国、法...
“私自评大师的机构”,也被撤了 曾经披着“大师”外衣四处走穴的人,正在纷纷退场。2026年以来,多个行业协会宣布撤销此前授予的“大师...
2026南昌家用呼吸机坏了去哪... 家用无创呼吸机属于精密二类医疗器械,长期昼夜连续运行,随着使用时间推移,有可能出现报警、噪音变大、无...
演习首日发生意外事故:台空军一... 【环球网报道 记者 徐思琦】据中时新闻网、中天新闻网等台媒8月5日报道,台军所谓“汉光42号演习”首...
奥运冠军陆春龙挂职担任苏州大学... 澎湃新闻记者 岳怀让近日,苏州大学体育学院官网“现任领导”栏目更新信息显示,陆春龙已经挂职担任苏州大...