• ADADADADAD

    SQLAdvisor如何安装使用[ mysql数据库 ]

    mysql数据库 时间:2024-11-26 22:16:13

    作者:文/会员上传

    简介:

    一、SQLAdvisor简介SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    一、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
    yuminstall--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如何安装使用.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: sqladvisor