已核验 · Aug 11, 2026
已独立佐证PostgreSQL 17 中的 JSON_TABLE:JSON 到关系查询成为一等公民 —— 连接 JSON 和 SQL 世界的属性
2 个信源PostgreSQL 17 引入 JSON_TABLE —— 一个把 JSON 文档转成关系表的函数,让 SQL 查询能跑在 JSON 数据上,不用先 flatten 成列。JSON 到关系查询以前可以用 jsonb_to_recordset + LATERAL join 做到,但 JSON_TABLE 让这个模式变成数据库优化器能原生规划的一等 SQL 语法。这个属性连接 JSON 和 SQL 世界:存 JSON 文档的创作者现在能用 SQL 查询跑它们,就像它们是关系表,不用显式 flatten。PG 17 还加了 MERGE / RETURNING(单语句条件 insert / update / delete 带受影响行返回)、逻辑复制 failover(副本提升不用 restart)、B-tree deduplication。
为什么现在讲
PG 17 发 JSON_TABLE —— 存 JSON 的创作者现在能跑 SQL 查询 JSON 数据,不用显式 flatten。
推荐理由
演示空间:同一 JSON 到关系查询在 PG 17 前后的并排(jsonb_to_recordset vs JSON_TABLE)。
依据
PostgreSQL 17 release notes + The Decoder 周报
“PostgreSQL 17 发 JSON_TABLE —— 以前需要 LATERAL join 的 JSON 到关系查询模式现在变成数据库优化器能原生规划的一等 SQL 语法。”
切入角度
把 JSON_TABLE 框成连接 JSON 和 SQL 世界的属性 —— 存 JSON 的创作者现在能跑 SQL 查询 JSON 数据,不用显式 flatten。
形式
长视频讲解
演示想法
录一段 10 分钟讲解:3 分钟讲「JSON 到关系桥接」框架,3 分钟讲 JSON_TABLE 语法,2 分钟做并排查询 demo(jsonb_to_recordset vs JSON_TABLE),2 分钟讲其他 PG 17 特性(MERGE / RETURNING + 逻辑复制 failover)。
平台注意
具体性能 benchmark 数字(超出本次捕获范围)未抽取;以创作者侧 benchmark 为准,不要给出具体提升百分比。具体迁移步骤(超出本次捕获范围)未抽取;生产迁移前对照官方升级指南。
可用说法
- PostgreSQL 17 达到 GA —— JSON-to-relational 查询的 JSON_TABLE、MERGE / RETURNING、逻辑复制故障转移、COPY 性能改进、B-tree 去重。
证据链
来自新闻
拆解
PG 17 中的 JSON_TABLE 让 JSON 到关系查询变成一等 SQL 语法(相比以前的 jsonb_to_recordset + LATERAL workaround)。本篇让桥接属性跟 workaround 属性保持独立,而不是把「JSON 到关系」当成单一能力。
信源
风险
- The Decoder 和 IT之家可用作媒体类佐证,但在对外表述任何具体性能声明或定价前,请先阅读厂商原始文档。在对外表述前,请对照厂商原始文档和实际许可 / 定价矩阵核实具体能力声明;不要把各平台定价或许可条款转述成具体美元数字或商业使用条款。
- 发布说明确认了新特性,但具体迁移步骤本次未提取。在对外表述前,请对照厂商原始文档和实际许可 / 定价矩阵核实具体能力声明;不要把各平台定价或许可条款转述成具体美元数字或商业使用条款。
演示思路
- 并排 JSON 到关系查询:jsonb_to_recordset + LATERAL vs JSON_TABLE
- 迁移故事:「把存 JSON 的 schema 迁到用 JSON_TABLE」,量查询简化
- PG 17 特性走查:JSON_TABLE + MERGE / RETURNING + 逻辑复制 failover + B-tree deduplication,每个附查询 demo