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

发布时间:2026/10/6 3:28:46

SOAR:SQL 优化与改写的自动化工具
文章目录SOARSQL 优化与改写的自动化工具1、这个工具是做什么的2、为什么要用它3、核心功能4、使用场景SOARSQL 优化与改写的自动化工具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 协议开源。

相关新闻

安卓HTTPS抓包实战:突破SSL证书锁定与中间人攻击

安卓HTTPS抓包实战:突破SSL证书锁定与中间人攻击

2026/10/6 3:26:12

1. 项目概述:为什么安卓HTTPS抓包是移动安全与开发的必修课在移动应用开发、安全测试乃至日常的逆向分析工作中,我们常常需要窥探应用与服务器之间的通信内容。对于HTTP协议,这轻而易举,一个简单的代理工具就能搞定。但如今&#…

2026年必须搞懂的20个 Agent 工程概念(运行机制篇):大白话一次讲清

2026年必须搞懂的20个 Agent 工程概念(运行机制篇):大白话一次讲清

2026/10/3 19:05:43

在工程上,“检索” 这件事情远没有看起来那么简单。因为 AI 世界的检索不是一个简单的数据库查询,而是一个决策系统:查什么、查多少、如何确保相关性、如何排序等等。Agent 这个词这两年已经被用的有点“概念疲劳”了。如果你问Agent&#xf…

MySQL总览

MySQL总览

2026/10/5 9:44:31

概述优化:定位慢查询SQL 执行计划索引存储引擎索引底层数据结构聚簇索引和非聚簇索引索引创建原则索引失效场景SQL 优化经验其他:事务事务特性隔离级别MVCC主从复制分库分表定位慢查询如何定位慢查询?介绍当时的情景:当时有一个接…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/10/5 14:25:36

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/10/5 16:54:26

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/10/5 11:17:40

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/10/5 21:04:58

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/10/5 15:05:44

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/10/5 15:05:44

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…