本文出自头条号老王谈运维,转载请说明出处。
作为一名优秀的DBA或系统管理员,工作总是充满各种“艰辛”!
你在工作中是否遇到过这样的情况:有一个慢SQL需要优化,但是通过分析执行计划又没有找到好的优化思路,或者优化之后效果不明显,没有达到自己理想的预期...不知道如何是好!
好想有个小工具可以帮助我找到慢SQL~
众里寻它千百度,它在Github海洋最深处!
今天老王就给大家推荐一个实用的工具,不仅能帮助你 rewrite SQL并且能给出一些优化的建议。
SOAR,即 SQL Optimizer And Rewriter,是一款 SQL 智能优化与改写工具,由小米运维 DBA 团队出品,SOAR 主要由语法解析器、集成环境、优化建议、重写逻辑、工具集五大模块组成,相比业内其他优秀产品有自己的优势。
功能特点
- 跨平台支持(支持Linux, Mac环境,Windows环境理论上也支持,不过未全面测试)
- 目前只支持 MySQL 语法族协议的SQL优化
- 支持基于启发式算法的语句优化
- 支持复杂查询的多列索引优化(UPDATE, INSERT, DELETE, SELECT)
- 支持EXPLAIN信息丰富解读
- 支持SQL指纹、压缩和美化
- 支持同一张表多条ALTER请求合并
- 支持自定义规则的SQL改写
使用示例
下面举例演示下实际的使用效果。
1、SQL分析选项卡界面输入要优化的SQL,如下图所示:
2、点击SQL评估之后,系统会对当前的SQL给出优化的建议,如下图所示:
输出说明:
- 查询语句中用in代替or效果更好。
- 存储IP地址建议用整数,而不是字符型,效率更高,此例中的IP地址用的是字符型。
SOAR安装
实用的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:wqsource .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 配置说明及注意事项
配置的部分有一些需要大家注意的细节点:
Github地址:https://github.com/XiaoMi/soar
总结
在遇到SQL没有优化思路时,可以尝试用用此工具,可能会给你不一样的思路。
网站崩溃找不到原因?平台搭建无从下手?热门技术不想落伍?想要变强找不到资料?
加入[IT拯救联盟],让大牛和同伴拯救你,带你装x带你飞。定期干货分享、大牛专业解答、实用IT工具优选.....
私信小编“联盟”,即可加入我们~