PawSQL 技术月报 | 2026年6月

摘要: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 检测与重写规则:

  1. 产生审核告警,提示当前查询使用了 STRAIGHT_JOIN

  2. 开启重写时,自动将 STRAIGHT_JOIN 转换为 INNER JOIN

对您的价值:自动识别并消除 STRAIGHT_JOIN 带来的性能风险,避免因数据分布变化导致的连接顺序失效问题。


SQL 脚本支持 Script 语句类型

当使用 PawSQL 执行多语句 SQL 脚本时,脚本中可能包含 CREATE ProcedureFOR、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 中 utf8utf8mb3 的别名,但此前 PawSQL 在字符集判断时将两者视为不同类型,导致审核结果不一致。现已修复,将 utf8utf8mb3 视为等价字符集。

对您的价值:MySQL 字符集审核更准确,不会因别名问题产生误报。


Decimal 数据类型 online/offline 解析一致性修复

通过 JDBC 连接(online)获取表结构与通过 DDL 语句(offline)解析表结构时,对于 DECIMAL(10,2) 等带精度的类型,两者的解析结果存在差异。修复后两种途径的解析结果完全一致。

对您的价值:无论通过 online 连接还是离线 DDL 文件获取表结构,Decimal 类型的精度信息始终一致,索引推荐更准确。


Qualifier 解析问题修复

在涉及多表关联且列名前带有表限定符(qualifier)的复杂查询中,解析器对限定符的处理存在缺陷,影响了后续的审核判断。本月已修复此问题。

对您的价值:含表限定符的复杂多表查询审核更加准确。

相关推荐
SelectDB1 小时前
Apache Doris 在 AgentLogsBench 中领先,支撑 Agent 可观测性生产负载
运维·数据库·agent
聚美智数2 小时前
黄历查询-运势查询-国际法定节假日查询-API接口介绍
android·java·数据库
夜影风4 小时前
Redis集群创建时出现“Node xxx.xxx is not empty”问题处理
数据库·redis·缓存
utf8mb4安全女神4 小时前
【Redis数据库】哨兵集群/redis集群/安装配置/主从复制/数据持久化操作/数据结构/安全限制/PHP redis/
linux·服务器·数据结构·数据库·redis·缓存
lzz的编码时刻4 小时前
Liquibase 入门实战教程
数据库·运维开发
Zk.Sun4 小时前
Linux设置触屏双击距离容差
linux·运维·数据库
渣渣灰飞4 小时前
MySQL 系统学习 第二阶段 第三章 DQL(Data Query Language)第二节:WHERE 条件查询
sql·学习·mysql
山峰哥5 小时前
数据库工程:Explain执行计划对比实战指南‌
数据库·sql·oracle·深度优先·宽度优先
不知疲倦的仄仄6 小时前
ShardingSphere:高效管理数据库集群的终极方案
sql·mysql·oracle·database