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路径中。

  • 相关阅读:
    【Linux】【Services】【Configuration】puppet
    【Linux】【Services】【Web】Haproxy
    【Linux】【Services】【Project】Haproxy Keepalived Postfix实现邮件网关Cluster
    【Linux】【Services】【Web】Nginx基础
    【Linux】【Services】【Project】Cobbler自动化装机
    【Linux】【Services】【Package】rpm包制作
    【Linux】【Services】【nfs】nfs安装与配置
    Bootstrap框架--DataTables列表示例--添加判断
    安全整改相关内容
    tomcat禁用PUT,DELETE等一些不必要的HTTP方法
  • 原文地址:https://www.cnblogs.com/yszr/p/10527063.html
Copyright © 2011-2022 走看看