首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PawSQL 技术月报 | 2026年5月

PawSQL 技术月报 | 2026年5月

作者头像
PawSQL
发布2026-06-17 20:47:03
发布2026-06-17 20:47:03
1710
举报

摘要:本月,PawSQL 带来了一系列贴近用户实际场景的更新。MySQL 存储过程现在也能被完整解析和审核了;分析型查询中的派生表会自动优化为 Lateral Join,减少不必要的中间结果物化;复杂嵌套子查询的重写效果也得到显著提升。此外,审核规则的严重级别现在可以由前端灵活配置,适配不同团队的管控需求。

一句话了解PawSQL: PawSQL 是 AI 驱动的企业级智能 SQL 审核优化平台,全球个人用户超 2 万。核心能力包括:40+ 种查询重写算法、基于代价模型的智能索引推荐、内置 300 + 规则集保障 SQL 合规安全、覆盖开发到运维全生命周期治理并支持 CI/CD 集成、兼容 MySQL、Oracle、openGauss、TDSQL 等 20 余种数据库,高效管控 SQL 质量与性能。

🚀 新功能

存储过程也能审了:MySQL PL 完整支持

如果您所在团队使用 MySQL 存储过程、函数或触发器,本月这项更新会让您直接受益——PawSQL 现已完整支持MySQL 存储过程语言(PL)的解析

以往,存储过程内部的 SQL 语句对审核工具来说如同"黑盒",无法分析其中的查询和操作是否合规。现在,PawSQL 能够深入 PL 代码内部,完整解析存储过程、函数、触发器、事件中的每一条 SQL,为存储过程级别的 SQL 审核和优化铺平了道路。

这项能力覆盖了各种主流 PL 语法结构:IF/CASE 条件分支、LOOP/WHILE/REPEAT 循环控制、SIGNAL/RESIGNAL 异常处理,以及块标签、GET DIAGNOSTICS 错误诊断等进阶特性。10 个专项测试脚本全部通过验证。

对您的价值:如果您的业务中大量使用 MySQL 存储过程,现在可以将其纳入 SQL 审核流程,不再留盲区。

分析查询性能提升:派生表自动转为 Lateral Join

分析型 SQL 中经常出现多层嵌套的派生表(子查询),每层派生表都会产生一次中间结果物化,拖慢查询响应。本月新增的DerivedTable → Lateral Join 自动重写优化,能帮您省去手动改写的麻烦。

PawSQL 现在可以智能识别三种派生表场景并自动转换:

  • 简单派生表→ 直接转为 Lateral Join,消除中间结果
  • 带聚合的派生表→ 自动判断转换可行性,保证语义一致
  • 多层嵌套派生表→ 递归处理,逐层优化
代码语言:javascript
复制
-- 优化前:派生表全量物化后再过滤,数据量大时性能堪忧
SELECT  FROM (
SELECT d.dept_id, COUNT() AS cnt
FROM dept d JOIN emp e ON d.dept_id = e.dept_id
GROUP BY d.dept_id
) t WHERE t.cnt > 5;
-- 优化后:转为 Lateral Join,避免中间结果物化,直接过滤
SELECT d.dept_id, COUNT() AS cnt
FROM dept d JOIN emp e ON d.dept_id = e.dept_id
GROUP BY d.dept_id
HAVING COUNT() > 5;

对您的价值:分析型查询中的派生表嵌套越深,优化收益越明显。无需手动改写 SQL,PawSQL 自动完成。

审核规则更灵活:您来定严重级别

不同团队对同一条审核规则的容忍度可能完全不同——有的团队将"缺少注释"视为 Error,有的只当作 Info。本月,PawSQL 完成了解析阶段审核规则的严重级别前端配置化改造。

现在,您可以在前端界面上为每条解析阶段的规则指定严重级别(Error / Warning / Info),无需修改后端配置或代码。

🔧 功能提升

复杂嵌套查询,优化更彻底了

当查询中嵌套了多层子查询时,重写的顺序直接影响最终优化效果。本月,PawSQL 对QueryFoldingRewrite的重写策略进行了重要调整——重写顺序从"外层→内层"改为"内层→外层"

这个改动意味着:最内层的子查询先被折叠优化,逐层向外推进。每一层都在下层已经完成优化的基础上进行,避免了之前外层先重写、内层变化后又得回头重写的低效循环。

对您的价值:如果您经常编写多层嵌套的复杂查询,现在会得到更准确、更高效的优化结果。

⚡ 性能优化

SQL 解析更快了,尤其是复杂查询

本月进行了两轮 ANTLR Grammar 规则顺序优化,目的很明确:让高频匹配的规则优先命中,减少解析器的回溯尝试

selectElement 规则:选择列是查询中出现频率最高的语法结构,将其规则前置,MySQL 及 3 种方言的解析性能均有提升

表达式/谓词语法:调整了解析优先级,减少 ANTLR 的"尝试—失败—回溯"路径,MySQL、PostgreSQL、PLSQL、TSQL 四方言同时受益

此外,Universal SQL Parser 的 语法文件也进行了系统性精简,消除了歧义分支、统一了方言间的结构差异,Parser 代码净减 102 行。

对您的价值:包含大量表达式和嵌套子查询的复杂 SQL,解析响应更快,审核和优化的等待时间更短。

高并发场景更稳定

新增pawsql.exclusive = true配置开关。在多线程高并发场景下,启用隔离模式可以避免 ANTLR 全局变量状态的竞态冲突,解析器的并发稳定性显著提升。

对您的价值:如果您的审核服务承载着较高的并发压力,开启此选项可以让解析过程更加稳定可靠。

🐛 Bug 修复

EXTRACT 函数解析问题已修复

修复了EXTRACT(YEAR FROM date_col)这类函数调用在嵌套于复杂表达式时,解析器未能正确识别时间单位字段的问题。SQL 指纹工具也同步做了加固。

CTE 多次引用时结果更准确

修复了一个"安静"的正确性问题:当同一个 CTE 在查询中被多次引用时,PawSQL 不再将主查询的过滤谓词下推到 CTE 内部。原因是——如果 CTE 被多处引用,谓词下推可能导致不同引用点获取不同的结果集,破坏语义等价性。

对您的价值:使用了多次引用 CTE 的查询,现在可以确保结果的正确性。

审核更精准:Lateral Join 不再被误报

NoCondition4JoinWarning规则此前会将没有关联条件的 Lateral Join 误报为 Cartesian Join。本月已修复。Lateral Join 按行驱动的语义决定了它可以没有关联条件,不应触发告警。

🌐 关于 PawSQL

PawSQL 是一款专业的企业级 SQL 质量管理和优化平台,提供 SQL 审核、优化、索引推荐、慢查询分析等全方位功能。支持 MySQL、PostgreSQL、Oracle、SQL Server 等主流数据库,以及 TDSQL、GaussDB 等国产数据库。为开发者和企业提供一站式的全生命周期 SQL 质量审核和优化解决方案。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PawSQL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🚀 新功能
    • 存储过程也能审了:MySQL PL 完整支持
    • 分析查询性能提升:派生表自动转为 Lateral Join
    • 审核规则更灵活:您来定严重级别
  • 🔧 功能提升
    • 复杂嵌套查询,优化更彻底了
  • ⚡ 性能优化
    • SQL 解析更快了,尤其是复杂查询
    • 高并发场景更稳定
  • 🐛 Bug 修复
    • EXTRACT 函数解析问题已修复
    • CTE 多次引用时结果更准确
    • 审核更精准:Lateral Join 不再被误报
  • 🌐 关于 PawSQL
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档