• SQL优化没思路,智能优化工具来帮你


     

    前言

    作为DBA或系统管理员,我们有时会遇到一个慢SQL需要优化,但是通过分析执行计划又没有找到好的优化思路,或者优化之后效果不明显,没有达到自己理想的预期,此时的你是不是很焦虑?此时你一定想如果有一个工具能帮自己rewrite SQL和得到一些优化的建议,那该多好啊。SOAR就是你寻找的工具。SOAR,即 SQL Optimizer And Rewriter,是一款 SQL 智能优化与改写工具,由小米运维 DBA 团队出品,SOAR 主要由语法解析器、集成环境、优化建议、重写逻辑、工具集五大模块组成,相比业内其他优秀产品有自己的优势。

    一、安装

    1.1、先安装go语言环境

    1、下载安装包

     wget  https://studygolang.com/dl/golang/go1.12.5.linux-amd64.tar.gz

     

    2、解压文件

    tar -C /usr/local -xzf go1.12.5.linux-amd64.tar.gz

    3、设置变量使之生效

    cd ~
    vim .profile
    在文件末尾添加如下内容:
    export PATH=$PATH:/usr/local/go/bin
    :wq
    source .profile

    4、确认版本

    go version

    1.2 安装soar

    1、下载安装包

    wget https://github.com/XiaoMi/soar/releases/download/0.9.0/soar.linux-amd64 -O /usr/local/soar

     

    2、soar加入到通用路径

    cd ~
    vim .bash_profile
    在文件中加入如下行:
    ....
    export PATH=$PATH:/usr/local/soar/bin
    ....

     

     

    1.3 安装soar web界面

    1.3.1安装

    1、下载安装镜像

    docker pull becivells/soar-web

    2、启动docker

    docker run -d --name soar-web -p 5077:5077 becivells/soar-web
    1.3.2 访问及配置

    1、浏览器输入 http://xx.xx.xx.xx:5077即可进入配置界面

     

    2、验证

     

    1.3.3 配置说明及注意事项

    1、关于存储: 所有的配置都是保存在浏览器 Local Storage 中的,多人之间使用是互补影响的,自己只能看到自己的配置,更换浏览器或者清除浏览器会造成配置丢失。 2、配置模板: 可以添加多数据库连接实例及配置,方便在 sql 评估的相互切换使用,具体配置项详情见https://github.com/XiaoMi/soar/blob/master/doc/config.md

    3、线上线下环境问题: 线上环境作为待 sql 评估环境,soar 在进行 sql 评估时,会根据 sql 语句,从 线上环境的数据库连接实例 拷贝数据表到 测试环境的数据库连接实例,然后在测试环境下执行 sql 语句进行分析。因此测试环境的数据库连接实例需要有最高权限。如果无法没有最高权限可能造成一些问题,如果没有权限可以启动一个空的 mysql docker 容器作为测试环境。如果仅仅做测试用,可将线上线下环境指定为一样。 4、日志等级: 日志等级为 0 时不打印日志,设置为 1-7 时,会将 soar 产生的日志打印至控制台,按 F12 或右击网页点击审查元素打开调试工具,点击 Console 按钮查看日志。

    1.4 举例说明

    1、SQL分析选项卡界面输入要优化的SQL,如下图所示:

     

    2、点击SQL评估之后,系统会对当前的SQL给出优化的建议,如下图所示:

     

    输出说明:

    • 查询语句中用in代替or效果更好。

    • 存储IP地址建议用整数,而不是字符型,效率更高,此例中的IP地址用的是字符型。

     

    二、其他

    在遇到SQL没有优化思路时,可以尝试用用此工具,可能会给你不一样的思路。

    喜欢请赞赏一下啦^_^

    微信赞赏

    支付宝赞赏

  • 相关阅读:
    windows利用net use删除smb连接
    用jquery的ajax功能获取网站alexa的方法
    11对于Web开发人员和设计师非常有用的在线工具
    Php获取Alexa排行统计
    php获取alexa世界排名值的函数
    26个免费矢量图片免费下载
    对makefile中双冒号规则的学习
    对makefile中 $*的理解
    GNU make manual 翻译(七十三)
    对makefile 中的 静态模式规则的理解
  • 原文地址:https://www.cnblogs.com/lkj371/p/11130997.html
Copyright © 2020-2023  润新知