web项目接到请求之后执行sql特别慢_小米开源!SQL优化工具,人工智能帮你 Rewrite...
本文出自头条号老王谈运维,转载请说明出处。
作为一名优秀的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...相关推荐
- sql int 比较_高质量SQL的30条建议 建议你收藏
前言 本文将结合实例demo,阐述30条有关于优化SQL的建议,多数是实际开发中总结出来的,希望对大家有帮助. 查询SQL尽量不要使用select *,而是select具体字段. 反例子: selec ...
- sql server死锁_如何解决SQL Server中的死锁
sql server死锁 In this article, we will talk about the deadlocks in SQL Server, and then we will analy ...
- sql server 群集_设计有效SQL Server群集索引
sql server 群集 In the previous articles of this series (see bottom for a full index), we described, i ...
- sql server 加密_列级SQL Server加密概述
sql server 加密 This article gives an overview of column level SQL Server encryption using examples. 本 ...
- sql server 并发_并发问题– SQL Server中的理论和实验
sql server 并发 介绍 (Introduction) Intended audience 目标听众 This document is intended for application dev ...
- sql server 性能_如何在SQL Server中收集性能和系统信息
sql server 性能 介绍 (Introduction) In this article, we're going through many of the tools we can use fo ...
- sql server 锁定_如何使用SQL Server 2014托管锁定优先级控制在线索引重建锁定
sql server 锁定 When you perform a SQL Server Online Index Rebuild operation, introduced for the first ...
- sql 删除依赖_关系数据库标准语言SQL(二)
声明:最近在准备考试,故整理数据库原理笔记. 视图 视图的创建和删除 CREATE VIEW <视图名 > [ <列名 > , --, <列名 >)] AS &l ...
- 刚装的系统没有sql server(mssqlserver)_数据库与SQL学习
本篇是数据分析系统学习专栏的第四篇文章--数据库与SQL学习.如果想要了解写作初衷,可以先行阅读如何系统学习数据分析. 数据库和SQL的基本概念 推荐阅读:怎么简单地理解数据库的概念? 核心概念: 数 ...
最新文章
- 9-10 rpm程序包管理和YUM仓库
- mongotemplate 查list_mongoTemplate.aggregate()聚合查询 时间
- 产品运营必须知道的几个概念,什么是定向营销?
- VTK:隐式函数之ImplicitQuadric
- java定义静态set集合_java集合之set
- ASP.NET Core 2.1 使用Docker运行
- (解决)can't connect to redis-server
- Struts2中我所遇到的内存溢出(java.lang.OutOfMemoryError)异常错误介绍
- 教你怎么蹭网实现和dualwan双倍网速上网
- nginx 过滤post报文 防火墙_十八般武艺之Nginx踩坑总结
- 多线程学习-时间改变事件
- 日常笔记(持续更新)
- linux下mysql双机主从复制(一主一从)----方法2
- python 驱动级鼠标_电竞极速鼠标
- python爬虫出来空值_pandas | DataFrame基础运算以及空值填充
- Oracle VM VirtualBox安装教程
- Aras Innovator: 如何在Form中放入图片
- TT 的美梦(SPFA)
- 软件安装教程-Vivado2018.3/ISE14.7/Modelsim10.5/Keil5/AD18/Cadence17.2/CAD2016
- 【Linux】更改登陆时显示的账号名称
热门文章
- 【Linux】安装x11vnc和xrdp,使用windows远程deepin
- 载入内存,让程序运行起来
- 快速上手Linux核心命令(一):核心命令简介
- 智慧教室解决方案和移动授课概念说明
- 经过5年的娱乐功能,编码传奇MPJ踏上了他的下一个大旅程
- 函数setState是React的未来
- 前序表达式 中序表达式 后序表达式
- beast软件linux用法,声卡驱动设置 - 黑苹果驱动高手篇 MultiBeast用法进阶_Linux教程_Linux公社-Linux系统门户网站...
- odac安装_ODAC安装及环境变量配置
- 关于7z结尾的压缩包操作系统