简介
SOAR(SQL Optimizer And Rewriter)是一个对 SQL 进行优化和改写的自动化工具, 由小米人工智能与云平台的数据库团队开发与维护,该工具由 Go 语言编写。该项目开源地址见参考资料。
该工具功能特点如下(该部分内容摘自GitHub中readme文档):
- 跨平台支持(支持 Linux, Mac 环境,Windows 环境理论上也支持,不过未全面测试)
- 目前只支持 MySQL 语法族协议的 SQL 优化
- 支持基于启发式算法的语句优化
- 支持复杂查询的多列索引优化(UPDATE, INSERT, DELETE, SELECT)
- 支持 EXPLAIN 信息丰富解读
- 支持 SQL 指纹、压缩和美化
- 支持同一张表多条 ALTER 请求合并
- 支持自定义规则的 SQL 改写
与其他产品对比:
安装 soar
在 GitHub:soar 中,已说明 soar 的安装方法。接下来在 win10 docker 上进行安装,关于 docker 的学习和使用参加我的另一篇博客。
在浏览器中输入:localhost:5077 即可看到 soar 的 web 界面,其中包括 SQL 分析以及 soar 配置两个页面。
使用 soar
在 soar 配置页面中,可以新增/编辑数据库配置,并可以测试连接。在此配置中,建议开启数据采样功能,这样的分析结果就有 explain 信息以及使用 SQL 重写功能。
在 SQL 分析页面中,可以对 SQL 给出详细的优化建议,例如:
此外,还提供一定的 SQL 改写能力,例如常用的 select * 转为字段的功能。
有关于更详细的信息,例如:
- soar 支持的重写规则
- soar 所有规则建议
- soar 索引优化建议
等内容,见参考资料中:SOAR 文档手册
参考资料
[1] GitHub:soar
[2] GitHub:soar-web
[3] SOAR 文档手册