zoukankan      html  css  js  c++  java
  • SQL优化工具SQLAdvisor使用

    一、简介
    在数据库运维过程中,优化SQL是业务团队与DBA团队的日常任务。例行SQL优化,不仅可以提升程序性能,还能够降低线上故障的概率。

    目前常用的SQL优化方式包括但不限于:业务层优化、SQL逻辑优化、索引优化等。其中索引优化通常通过调整索引或新增索引从而达到SQL优化的目的。索引优化往往可以在短时间内产生非常巨大的效果。如果能够将索引优化转化成工具化、标准化的流程,减少人工介入的工作量,无疑会大大提高DBA的工作效率

    SQLAdvisor是由美团点评公司DBA团队(北京)开发维护的SQL优化工具:输入SQL,输出索引优化建议。 它基于MySQL原生词法解析,再结合SQL中的where条件以及字段选择度、聚合条件、多表Join关系等最终输出最优的索引优化建议。目前SQLAdvisor在公司内部大量使用,较为成熟、稳定。

    美团点评致力于将SQLAdvisor打造成一款高智能化SQL优化工具,选择将已经在公司内部使用较为成熟的、稳定的SQLAdvisor项目开源,github地址。希望与业内有类似需求的团队,一起打造一款优秀的SQL优化产品。

    目前SQLAdvisor在美团点评内部广泛应用,公司内部对SQLAdvisor的开发全面转到github上,开源和内部使用保持一致。

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

    GitHup地址:https://github.com/Meituan-Dianping/SQLAdvisor

    二、SQLAdvisor安装
    2.1 拉取最新代码

    $ git clone https://github.com/Meituan-Dianping/SQLAdvisor.git
    2.2 安装依赖项

    $ yum install cmake libaio-devel libffi-devel glib2 glib2-devel
    跟据glib安装的路径,修改SQLAdvisor/sqladvisor/CMakeLists.txt中的两处include_directories针对glib设置的path。glib yum安装默认不需要修改路径。

    另外,编译sqladvisor时依赖perconaserverclient_r, 因此需要安装Percona-Server-shared-56。

    # 配置Percona56 yum源;
    $ yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
     
    # 安装Percona-Server-shared-56;
    $ yum install Percona-Server-shared-56
    如果yum安装不行,可以采用rpm包手动安装。参考:https://github.com/Meituan-Dianping/SQLAdvisor/issues/12

    ###########采用rpm包手动安装########## 

    下载 tar 包
    wget https://www.percona.com/downloads/Percona-Server-5.6/Percona-Server-5.6.25-73.1/binary/redhat/6/x86_64/Percona-Server-5.6.25-73.1-r07b797f-el6-x86_64-bundle.tar
    解压
    tar -zxvf Percona-Server-5.6.25-73.1-r07b797f-el6-x86_64-bundle.tar
    找到对应包,安装即可。
    rpm -ivh Percona-Server-shared-56-5.6.25-rel73.1.el6.x86_64.rpm

    我使用这个方案:
    解压的时候报错了:
    tar -zxvf Percona-Server-5.6.25-73.1-r07b797f-el6-x86_64-bundle.tar

    gzip: stdin: not in gzip format
    tar: Child returned status 1
    tar: Error is not recoverable: exiting now

    然后换成:tar -xvf Percona-Server-5.6.25-73.1-r07b797f-el6-x86_64-bundle.tar(去掉z参数)

    之后执行安装:
    warning: Percona-Server-shared-56-5.6.25-rel73.1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY

    ##################################

    需要配置软链接:

    $ rpm -ql Percona-Server-shared-56
    /usr/lib64/libperconaserverclient.so.18
    /usr/lib64/libperconaserverclient.so.18.1.0
    /usr/lib64/libperconaserverclient_r.so.18
    /usr/lib64/libperconaserverclient_r.so.18.1.0
    
    $ cd /usr/lib64/
    $ ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so
    
    2.3 编译依赖项sqlparser
    
    $ cd /root/SQLAdvisor/
    $ 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值尽量不要修改,后面安装依赖这个目录。
    2.4 安装SQLAdvisor源码

    $ cd /root/SQLAdvisor/sqladvisor/

    $ cmake -DCMAKE_BUILD_TYPE=debug ./
    $ make
     

    安装完成后,在本路径下生成一个sqladvisor可执行文件,这即是我们想要的。

    可以把可执行文件sqladvisor复制到PATH路径中。

  • 相关阅读:
    BZOJ 1191 HNOI2006 超级英雄hero
    BZOJ 2442 Usaco2011 Open 修建草坪
    BZOJ 1812 IOI 2005 riv
    OJ 1159 holiday
    BZOJ 1491 NOI 2007 社交网络
    NOIP2014 D1 T3
    BZOJ 2423 HAOI 2010 最长公共子序列
    LCA模板
    NOIP 2015 D1T2信息传递
    数据结构
  • 原文地址:https://www.cnblogs.com/yszr/p/10527063.html
Copyright © 2011-2022 走看看