• (MYSQL)SQL优化工具 SQLAdvisor 安装使用详解


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

    二、SQLAdvisor安装

      1、拉取最新代码 

      git clone https://github.com/Meituan-Dianping/SQLAdvisor.git

      2、 安装依赖项

      yum install cmake libaio-devel libffi-devel glib2 glib2-devel

      yum 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

      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值尽量不要修改,后面安装依赖这个目录。

     

      4、安装SQLAdvisor源码

      1. cd SQLAdvisor/sqladvisor/
      2. cmake -DCMAKE_BUILD_TYPE=debug ./
      3. make
    

        在本路径下生成一个sqladvisor可执行文件,这即是我们想要的。可以通过ln -s sqladvisor /usr/bin/这种方式放入PATH路径中,通过./sqladvisor执行

    三、SQLAdvisor使用

      1、命令帮助文档查看

    [root@lifeyoyo sqladvisor]# ./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

    ./sqladvisor  -h 192.168.2.117 -u root -p 123456 -P 3306 -d volunteer_pu -q "select count(*) as count from activity_apply as a where a.delStatus= 0 and a.activity=66 and a.status=1" -v 1

      3、配合文件参数使用

    ./sqladvisor -f sql.cnf  -v 1

        参数文件格式:

    [sqladvisor]
    username=root
    password=123456
    host=192.168.2.117
    port=3306
    dbname=volunteer_pu
    sqls=select count(*) as count from activity_apply as a where a.delStatus= 0 and a.activity=66 and a.status=1;

    四、错误信息以及解决方案

    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

     

    参考链接: 

    http://blog.itpub.net/27067062/viewspace-2135172 
    http://www.oschina.net/news/82725/sqladvisor-opensource?nocache=1489115095712

     

  • 相关阅读:
    vsftp搭建
    进程管理相关命令(15 个)
    系统管理与性能监视命令 (9 个)
    系统权限及用户授权相关命令(4 个)
    用户管理命令(10个命令)
    深入网络操作命令(9条命令)
    查看系统用户登陆信息的命令(7 个)
    查看文件及内容处理命令(21个命令)
    有关磁盘与文件系统的命令(16个命令)
    linux kernel bisops.h
  • 原文地址:https://www.cnblogs.com/beliveli/p/6541951.html
Copyright © 2020-2023  润新知