本文出自头条号老王谈运维,转载请说明出处。

作为一名优秀的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工具优选.....

私信小编“联盟”,即可加入我们~

web项目接到请求之后执行sql特别慢_小米开源!SQL优化工具,人工智能帮你 Rewrite...相关推荐

  1. sql int 比较_高质量SQL的30条建议 建议你收藏

    前言 本文将结合实例demo,阐述30条有关于优化SQL的建议,多数是实际开发中总结出来的,希望对大家有帮助. 查询SQL尽量不要使用select *,而是select具体字段. 反例子: selec ...

  2. sql server死锁_如何解决SQL Server中的死锁

    sql server死锁 In this article, we will talk about the deadlocks in SQL Server, and then we will analy ...

  3. sql server 群集_设计有效SQL Server群集索引

    sql server 群集 In the previous articles of this series (see bottom for a full index), we described, i ...

  4. sql server 加密_列级SQL Server加密概述

    sql server 加密 This article gives an overview of column level SQL Server encryption using examples. 本 ...

  5. sql server 并发_并发问题– SQL Server中的理论和实验

    sql server 并发 介绍 (Introduction) Intended audience 目标听众 This document is intended for application dev ...

  6. sql server 性能_如何在SQL Server中收集性能和系统信息

    sql server 性能 介绍 (Introduction) In this article, we're going through many of the tools we can use fo ...

  7. sql server 锁定_如何使用SQL Server 2014托管锁定优先级控制在线索引重建锁定

    sql server 锁定 When you perform a SQL Server Online Index Rebuild operation, introduced for the first ...

  8. sql 删除依赖_关系数据库标准语言SQL(二)

    声明:最近在准备考试,故整理数据库原理笔记. 视图 视图的创建和删除 CREATE VIEW <视图名 > [ <列名 > , --, <列名 >)] AS &l ...

  9. 刚装的系统没有sql server(mssqlserver)_数据库与SQL学习

    本篇是数据分析系统学习专栏的第四篇文章--数据库与SQL学习.如果想要了解写作初衷,可以先行阅读如何系统学习数据分析. 数据库和SQL的基本概念 推荐阅读:怎么简单地理解数据库的概念? 核心概念: 数 ...

最新文章

  1. 9-10 rpm程序包管理和YUM仓库
  2. mongotemplate 查list_mongoTemplate.aggregate()聚合查询 时间
  3. 产品运营必须知道的几个概念,什么是定向营销?
  4. VTK:隐式函数之ImplicitQuadric
  5. java定义静态set集合_java集合之set
  6. ASP.NET Core 2.1 使用Docker运行
  7. (解决)can't connect to redis-server
  8. Struts2中我所遇到的内存溢出(java.lang.OutOfMemoryError)异常错误介绍
  9. 教你怎么蹭网实现和dualwan双倍网速上网
  10. nginx 过滤post报文 防火墙_十八般武艺之Nginx踩坑总结
  11. 多线程学习-时间改变事件
  12. 日常笔记(持续更新)
  13. linux下mysql双机主从复制(一主一从)----方法2
  14. python 驱动级鼠标_电竞极速鼠标
  15. python爬虫出来空值_pandas | DataFrame基础运算以及空值填充
  16. Oracle VM VirtualBox安装教程
  17. Aras Innovator: 如何在Form中放入图片
  18. TT 的美梦(SPFA)
  19. 软件安装教程-Vivado2018.3/ISE14.7/Modelsim10.5/Keil5/AD18/Cadence17.2/CAD2016
  20. 【Linux】更改登陆时显示的账号名称

热门文章

  1. 【Linux】安装x11vnc和xrdp,使用windows远程deepin
  2. 载入内存,让程序运行起来
  3. 快速上手Linux核心命令(一):核心命令简介
  4. 智慧教室解决方案和移动授课概念说明
  5. 经过5年的娱乐功能,编码传奇MPJ踏上了他的下一个大旅程
  6. 函数setState是React的未来
  7. 前序表达式 中序表达式 后序表达式
  8. beast软件linux用法,声卡驱动设置 - 黑苹果驱动高手篇 MultiBeast用法进阶_Linux教程_Linux公社-Linux系统门户网站...
  9. odac安装_ODAC安装及环境变量配置
  10. 关于7z结尾的压缩包操作系统