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

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

文章目录

  • SOAR:SQL 优化与改写的自动化工具
    • 1、这个工具是做什么的
    • 2、为什么要用它
    • 3、核心功能
    • 4、使用场景

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 相近的初筛反馈。

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 协议开源。