摘要:2026年6月,PawSQL 在数据库兼容性上持续发力------TDSQL 系列特性(关键字、SEQUENCE、执行计划降级)全面就位,大数据场景的 Hive LATERAL VIEW 也得到支持。同时,STRAIGHT_JOIN 重写规则和 JoinElimination 非 PKFK 场景的扩展让优化覆盖面更广,多项解析器优化和 Bug 修复则让审核体验更加丝滑。
一句话了解PawSQL:PawSQL 是 AI 驱动的企业级智能 SQL 审核优化平台,全球个人用户超 2 万。核心能力包括:40+ 种查询重写算法、基于代价模型的智能索引推荐、内置 300+ 规则集保障 SQL 合规安全、覆盖开发到运维全生命周期治理并支持 CI/CD 集成、兼容 MySQL、Oracle、openGauss、TDSQL 等 20 余种数据库,高效管控 SQL 质量与性能。
🚀 新功能
TDSQL 全面支持:关键字、SEQUENCE 与执行计划
TDSQL 是腾讯云自研的分布式数据库,在国内金融、电商场景应用广泛。如果您所在团队正在使用或评估 TDSQL,以下三项更新值得关注:
-
TDSQL 特有关键字:TDSQL 扩展了若干自定义关键字,此前会导致 SQL 解析失败。本月已将这类关键字完整加入解析器关键字表,解析不再报错。
-
执行计划获取降级 :对于 TDSQL 分布式下不支持
ANALYZE的复杂 SQL,PawSQL 自动切换使用FORMAT = TREE获取执行计划,确保执行计划分析不中断。
对您的价值:TDSQL 用户在 SQL 审核和优化时,不会再因语法不兼容而漏检或报错,执行计划获取也更稳定。
Hive LATERAL VIEW 引用支持
大数据场景下,Hive 的 LATERAL VIEW 配合 EXPLODE 是处理嵌套数据的标配写法。PawSQL 增强了对 Hive 中 LATERAL 引用语义的理解,能够正确解析 LATERAL VIEW EXPLODE(...) t AS col_name 等语法结构,让 Hive SQL 的审核不再遗漏这类复杂查询。
对您的价值:使用 Hive 进行 ETL 或数据分析的团队,可以更完整地对查询进行审核和优化分析。
STRAIGHT_JOIN 检测与自动重写
您是否遇到过 :某条 SQL 昨天跑得飞快,今天突然慢如蜗牛?排查下来发现是有人用了 STRAIGHT_JOIN 强制连接顺序。当数据分布变化后,这个"人工最优顺序"反而变成了性能瓶颈。
PawSQL 新增了 STRAIGHT_JOIN 检测与重写规则:
-
产生审核告警,提示当前查询使用了
STRAIGHT_JOIN -
开启重写时,自动将
STRAIGHT_JOIN转换为INNER JOIN
对您的价值:自动识别并消除 STRAIGHT_JOIN 带来的性能风险,避免因数据分布变化导致的连接顺序失效问题。
SQL 脚本支持 Script 语句类型
当使用 PawSQL 执行多语句 SQL 脚本时,脚本中可能包含 CREATE Procedure、FOR、WHILE 等语句。本月新增了脚本 SQL 语句类型,这些语句在脚本解析过程中会被正确识别并纳入语句列表,确保 SQL 执行流程的完整性。
对您的价值:多语句 SQL 脚本解析更加完整,包含环境初始化和切换的脚本可以一站式执行,无需手动拆分。
🔧 功能提升
JoinEliminationRewrite:支持非主外键场景
JoinEliminationRewrite 用于消除查询中不必要的表连接。此前仅在 FK-PK 关联场景生效。本月将其扩展为:即使没有显式外键约束,只要语义等价,也能自动消除多余的 JOIN。同时修正了左/右外连接中父表-子表匹配逻辑的边界判断。
对您的价值:在没有外键约束的数据库中,JOIN 消除规则依然能发挥作用,覆盖更多实际业务场景。
字符串类型判断与默认值逻辑优化
对字符串类型的判断逻辑做了两项优化:一是改进了 varchar 类型判定,为 text 类型设置了长度信息;二是新增了默认值排除 NULL 的逻辑,避免在审核时因 NULL 默认值产生误报。
对您的价值:字符串类型的长度和默认值审核更加精确,减少不必要的误报。
表关联缺少连接条件审核优化
RuleNoCondition4JoinWarning 用于检测"表关联缺少连接条件"的场景。本月对其判断逻辑进行了优化,消除了部分误报,并更新了配置文件默认参数。
对您的价值:CROSS JOIN 漏关联的检测更加精准,误报减少,审核体验更好。
⚡ 性能优化
派生表转 LATERAL JOIN 算法持续优化
DerivedTable2LateralJoinRewrite 是 PawSQL 最受关注的优化规则之一。本月对其进行了持续的边界条件优化,进一步提升了 LATERAL JOIN 变换的适用性和准确率。
对您的价值:更多 Top-N 分组查询场景能被自动转换,获取 LATERAL JOIN 的加速收益。
SQL 解析器性能优化
本月对 SQL 解析器进行了多次优化,包括减少不必要的解析步骤、优化解析树构建效率等。这些优化是全链路生效的------每个 SQL 的审核和优化都会因此受益。
对您的价值:SQL 解析速度提升,审核和优化的响应更快。
TDSQL 执行计划解析优化
对于 TDSQL 分布式环境中某些不支持 ANALYZE 的复杂 SQL,PawSQL 自动降级使用 FORMAT = TREE 获取执行计划,确保慢 SQL 分析和索引推荐持续可用。
对您的价值:TDSQL 分布式场景下执行计划获取更加稳定,索引推荐不因 ANALYZE 不可用而中断。
🐛 Bug 修复
SELECT 列中常量解析问题已修复
在复杂 SQL 场景中,解析器对 SELECT 列表中的常量表达式(如 SELECT 1 + 2)的解析存在歧义,影响了后续审核判断。本月通过调整解析器 Grammar 和 AST 构建逻辑,彻底修复了此问题。
对您的价值:包含常量表达式的 SELECT 查询不再被误判,审核结果更准确。
变长字符类型判定:utf8 与 utf8mb3 统一处理
MySQL 中 utf8 是 utf8mb3 的别名,但此前 PawSQL 在字符集判断时将两者视为不同类型,导致审核结果不一致。现已修复,将 utf8 和 utf8mb3 视为等价字符集。
对您的价值:MySQL 字符集审核更准确,不会因别名问题产生误报。
Decimal 数据类型 online/offline 解析一致性修复
通过 JDBC 连接(online)获取表结构与通过 DDL 语句(offline)解析表结构时,对于 DECIMAL(10,2) 等带精度的类型,两者的解析结果存在差异。修复后两种途径的解析结果完全一致。
对您的价值:无论通过 online 连接还是离线 DDL 文件获取表结构,Decimal 类型的精度信息始终一致,索引推荐更准确。
Qualifier 解析问题修复
在涉及多表关联且列名前带有表限定符(qualifier)的复杂查询中,解析器对限定符的处理存在缺陷,影响了后续的审核判断。本月已修复此问题。
对您的价值:含表限定符的复杂多表查询审核更加准确。