SOAR:SQL 优化与改写的自动化工具

SOAR 在 GitHub 上已经拿到 8,766 Star。

小米人工智能与云平台的数据库团队开源了这个工具,专门解决 SQL 优化和改写的问题。它的全称是 SQL Optimizer And Rewriter,目标是把数据库语句的审查、优化和改写流程自动化。

在日常开发中,SQL 性能问题往往在数据量增长后才暴露出来。到那个时候再回头优化,通常需要改动表结构或业务逻辑,成本更高。SOAR 的价值在于把优化动作前置,在语句上线前就完成一轮自动检查。

1、这个工具是做什么的

SOAR 做三件事:分析 SQL 语句、给出优化建议、按规则改写语句。

它针对 MySQL 语法族协议,支持 UPDATE、INSERT、DELETE、SELECT 四种操作的索引优化,也能读取 EXPLAIN 输出并给出解释。SOAR 还支持 SQL 指纹、压缩和美化,以及同一张表上多条 ALTER 请求的合并。这些功能覆盖了从语句输入到执行计划分析,再到最终改写建议的完整链路。

正文顶部截图

2、为什么要用它

写 SQL 的人经常遇到几个问题:查询慢但不知道原因、索引加了没效果、复杂语句一眼看不出风险。人工排查需要逐条看执行计划,对比表结构和数据分布,耗时且容易遗漏。

SOAR 把这部分工作接管过来。它基于启发式算法检查语句,给出优化建议,并支持自定义规则进行改写。对于需要多人协作 review 的团队,它可以作为统一的入口,减少个人经验差异带来的判断偏差。对于个人开发者,它可以快速定位常见写法问题,避免把明显低效的语句带入生产环境。

工具的设计思路是把专家经验沉淀成可复用的规则。这样即使是新成员,也能在提交 SQL 时获得与资深 DBA 相近的初筛反馈。

README区域截图

3、核心功能

  • 跨平台支持 Linux 和 Mac 环境,Windows 理论上可用但未全面测试
  • 支持 MySQL 语法族协议的 SQL 优化
  • 基于启发式算法的语句优化
  • 复杂查询的多列索引优化
  • EXPLAIN 信息解读
  • SQL 指纹、压缩和美化
  • 同一张表多条 ALTER 请求合并
  • 自定义规则的 SQL 改写

4、使用场景

SOAR 适合以下几类人和团队使用:

  • 负责 MySQL 性能优化的 DBA
  • 需要批量审查业务 SQL 的开发者
  • 想建立 SQL 规范的工程团队
  • 希望对存量 SQL 做统一梳理的运维人员

在大中型业务中,SQL 质量往往随时间衰减。把 SOAR 接入 CI 流程,可以在代码合并前自动扫描新增 SQL,提前发现索引缺失或写法风险。它的输出可以直接作为 review 依据,也能帮助团队逐步形成统一的 SQL 编写标准。

工具采用 Apache License 2.0 协议开源。

步形成统一的 SQL 编写标准。

工具采用 Apache License 2.0 协议开源。

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐