大家都知道数据库中的explain执行计划工具,能帮我们分析自己所编写SQL的性能,如索引是否使用了、临时表是否使用了、文件排序是否使用了、扫描的行数以及各个查询的执行顺序等一些SQL执行反馈信息,但这个explain出来的图表不够通俗易懂,也只有日积月累的童鞋,才能更好的使用这个工具**。而此时小米开源的soar工具能帮我将explain里面的信息解读出来,提示我们写出更加优质的sql代码。**
如下图信息(soar输出的信息用markdown文档打开):
简单的安装及使用方式
1、windows环境下载soar.windows-amd64文件
soar是命令行工具,不是图形化桌面工具,需要在cmd.exe下以命令的方式运行。(注意:下载的文件不是双击执行的,是命令,如 java -version的java命令符)
1)把soar.windwos-amd64文件放在d盘
2)在d盘新建一个空的sql文件,里面存放你想解析的sql代码,如query.sql
3) 打开cmd.exe -> type d:\query.sql | d:\soar.windows-amd64 -test-dsn=“数据库用户名:密码@127.0.0.1:3306/my_database”
把输出的分析信息拷贝到markdown工具下(即可以可视化)**
4) (方便以后工作)制作简单双击执行工具:在d盘建立bat文件,把指令存放到bat中,方便以后双击执行,如下代码
type query.sql | soar.windows-amd64 -test-dsn="root:123456@127.0.0.1:3306/my_database" >file.txt 2>&1
2、Linux环境下载二进制安装包
下载:wget https://github.com/XiaoMi/soar/releases/download/v0.8.1/soar.linux-amd64 -O soar
授权:chmod a+x soar
1)下载的soar文件就是命令,不用执行
2)在soar文件当前目录下执行
echo “select * from tb_area” | ./soar -test-dsn="数据库用户名:数据库密码@127.0.0.1:3306/my_base"
3) 输出的信息拷贝到markdown工具下即可直观查阅提示信息 或者把结果输出到文件中
4)(方便以后工作)制作shell脚本工具
-
soar.sh 代码如下
content=$(cat query.sql) echo $content | ./soar.linux-amd64 -test-dsn="root:123456@127.0.0.1:3306/intellif_base" > file.txt
3、支持开源(参与开发与改善,或者制作可视化WEB操作界面)
github地址:https://github.com/XiaoMi/soar/blob/master/README.md
其他功能:打印所有的启发式规则、忽略某些规则、语句重写等