当前位置: 首页 > article >正文

PostgreSQL17高级特性实战

PostgreSQL 17 高级特性实战:JSON 增强、增量备份与逻辑复制深度指南🐘 PostgreSQL 17 是 2024 年最重要的数据库版本更新之一——JSON 能力大幅增强、备份恢复效率翻倍、逻辑复制全面升级。本文带你深入每个新特性的实战用法。📌 前言PostgreSQL 一直是「最先进」的开源关系型数据库。在 17 版本中,它进一步巩固了在以下领域的优势:JSON 处理:新增JSON_TABLE,终于可以像 MySQL 那样把 JSON 转成关系表备份恢复:增量备份(Incremental Backup),大数据库备份时间从小时缩短到分钟逻辑复制:支持复制 DDL,主从切换更平滑性能优化:VACUUM 改进、查询并行度提升、索引扫描优化让我们逐个深入。一、环境准备1.1 安装 PostgreSQL 17# Ubuntu/Debiansudosh-c'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" /etc/apt/sources.list.d/pgdg.list'wget--quiet-O- https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudoapt-keyadd-sudoaptupdatesudoaptinstall-ypostgresql-17 postgresql-client-17# 启动sudosystemctl start postgresqlsudosystemctl status postgresql# 验证版本psql--version# psql (PostgreSQL) 17.x1.2 创建测试数据库-- 连接 PostgreSQLsudo-u postgres psql-- 创建测试数据库和用户CREATEUSERdemoWITHPASSWORD'demo123';CREATEDATABASEpg17_demo OWNER demo;\c pg17_demo-- 准备测试数据CREATETABLEusers(idSERIALPRIMARYKEY,nameVARCHAR(100),emailVARCHAR(200),profile JSONB,created_atTIMESTAMPDEFAULTNOW());INSERTINTOusers(name,email,profile)VALUES('Alice','alice@example.com','{"age": 28, "skills": ["Python", "SQL", "Go"], "address": {"city": "Shanghai", "district": "Pudong"}}'),('Bob','bob@example.com','{"age": 35, "skills": ["Java", "Kubernetes", "Rust"], "address": {"city": "Beijing", "district": "Haidian"}}'),('Charlie','charlie@example.com','{"age": 22, "skills": ["TypeScript", "React", "Node.js"], "address": {"city": "Shenzhen", "district": "Nanshan"}}'),('Diana','diana@example.com','{"age": 31, "skills": ["C++", "CUDA", "Python"], "address": {"city": "Hangzhou", "district": "Xihu"}}'),('Eve','eve@example.com','{"age": 26, "skills": ["Rust", "WASM", "Go"], "address": {"city": "Shanghai", "district": "Minhang"}}');二、JSON_TABLE:JSON 转关系表2.1 旧方式(Svelte 5 风格之前)-- PostgreSQL 16 及之前:用 jsonb_array_elements + lateral joinSELECTu.name,u.email,skillFROMusers u,jsonb_array_elements_text(u.profile-'skills')ASskill;-- 结果:-- name | email | skill-- -------+---------------------+------------- Alice | alice@example.com | Python-- Alice | alice@example.com | SQL-- Alice | alice@example.com | Go-- Bob | bob@example.com | Java-- ...这个写法虽然能用,但语法不够直观,处理嵌套 JSON 更是痛苦。2.2 PostgreSQL 17 的 JSON_TABLEJSON_TABLE是 SQL:2016 标准的一部分,PostgreSQL 17 终于完整支持:-- 基本用法:将 JSON 数组展开为行SELECTjt.*FROMusers u,JSON_TABLE(u.profile,-- JSON 数据源'$'-- JSONPath 表达式COLUMNS(ageINTPATH'$.age',-- 提取标量值cityTEXTPATH'$.address.city'-- 提取嵌套值))ASjt;-- 结果:-- age | city-- -----+------------- 28 | Shanghai-- 35 | Beijing-- 22 | Shenzhen-- 31 | Hangzhou-- 26 | Shanghai2.3 JSON_TABLE + NESTED PATH:处理数组-- 将 skills 数组展开为行SELECTu.name,jt.skillFROMusers u,JSON_TABLE(u.profile,'$'COLUMNS(nameTEXTPATH'$.name',NESTED PATH'$.skills[*]'COLUMNS(skillTEXTPATH'$')))ASjt;-- 结果:-- name | skill-- -------+------------- Alice | Python-- Alice | SQL-- Alice | Go-- Bob | Java-- Bob | Kubernetes-- Bob | Rust-- ...2.4 JSON_TABLE + WITH ORDINALITY:保留数组索引-- 带索引的展开SELECTu.name,jt.skill_index,jt.skillFROMusers u,JSON_TABLE(u.profile,'$'COLUMNS(NESTED PATH'$.skills[*]'COLUMNS(skill_indexFORORDINALITY,-- 数组索引(从1开始)skillTEXTPATH'$')))ASjt;-- 结果:-- name | skill_index | skill-- -------+-------------+------------- Alice | 1 | Python-- Alice | 2 | SQL-- Alice | 3 | Go-- Bob | 1 | Java2.5 JSON_TABLE + DEFAULT:处理缺失值-- 处理缺失或 NULL 值SELECTjt.*FROMusers u,JSON_TABLE(u.profile,'$'COLUMNS(ageINTPATH'$.age'DEFAULT

相关文章:

PostgreSQL17高级特性实战

PostgreSQL 17 高级特性实战:JSON 增强、增量备份与逻辑复制深度指南 🐘 PostgreSQL 17 是 2024 年最重要的数据库版本更新之一——JSON 能力大幅增强、备份恢复效率翻倍、逻辑复制全面升级。本文带你深入每个新特性的实战用法。 📌 前言 PostgreSQL 一直是「最先进」的开…...

量子互联网节点混合程序执行挑战与Qoala架构解析

1. 量子互联网节点的混合程序执行挑战量子互联网作为量子计算与量子通信技术的融合产物,正在从理论构想走向工程实践。与传统互联网不同,量子互联网的核心功能依赖于量子比特(qubit)的特殊性质——特别是量子纠缠和量子叠加态。这…...

079、多轴运动控制:插补器设计(圆弧插补)

079 多轴运动控制:插补器设计(圆弧插补) 从一次现场调试说起 去年在深圳某激光切割设备厂,客户反馈切割圆孔时总在四个象限点出现“鼓包”。我带着示波器去现场,抓出XY轴的位置误差曲线,发现每次经过0、90、180、270这些特殊角度时,速度曲线都会出现一个明显的尖峰。当…...

用 LangChain 克隆一个 ChatGPT:LLMChain + Memory 实战

0 前言 ChatGPT 之所以好用,核心在于: 个性化的系统提示词多轮对话记忆 本文基于 LangChain,用不到 30 行代码复刻这两个能力,构建一个可自定义人格的对话 AI。 1 技术栈组件说明LLMChainLangChain 的核心链,将 LLM、P…...

2024必看!AI写教材的实用工具,一键生成20万字教材且低查重!

编写教材难题与AI工具解决方案 编写教材,如何更好地适应多样化需求呢?不同年级学生的认知能力差异显著,内容过于深入或过于浅显都会造成困扰;在课堂教学和自主学习等多种场景中,教材的呈现方式需要灵活调整&#xff1…...

从零到顶刊投稿,Perplexity辅助研究全流程,精准定位高影响力论文与方法论缺口

更多请点击: https://intelliparadigm.com 第一章:Perplexity学术研究最佳实践概览 Perplexity 是衡量语言模型预测能力的核心指标,其数学定义为交叉熵的指数形式:\( PPL 2^{-\frac{1}{N}\sum_{i1}^{N}\log_2 p(w_i \mid w_{数据…...

用ChatGPT 10分钟生成TikTok爆款脚本:5步工作流+3类高转化话术模板(附Prompt库下载)

更多请点击: https://intelliparadigm.com 第一章:ChatGPT TikTok视频创意 在短视频爆发式增长的今天,TikTok 内容创作者亟需高效、可复用的创意生成机制。ChatGPT 可作为智能脚本引擎,将抽象主题快速转化为结构化、高传播性的视…...

从丰田SUA事件看安全关键系统软件可靠性:设计原则与工程实践

1. 项目概述:当软件缺陷成为致命威胁我干了十多年嵌入式开发,从单片机玩到复杂的汽车域控制器,经手的代码行数自己都数不清了。但每次看到“软件缺陷导致车辆突然加速”这类新闻,后背还是会发凉。这行干久了,你会对代码…...

基于MCP协议构建低成本另类投资数据引擎,赋能AI原生投研

1. 项目概述:一个为AI助手注入投资洞察力的“数据引擎” 如果你是一名对冲基金的分析师、量化研究员,或者只是对市场有敏锐嗅觉的个人投资者,你肯定知道,在今天的市场里,光看K线图和财报已经不够了。真正的“阿尔法”…...

RC 滤波截止频率与滤波原理详解

一、先搞懂最核心的问题:滤波到底 "滤" 的是什么?滤波不是 "切掉" 某个频率的信号,而是对不同频率的信号进行选择性衰减 **。**我们想要的信号(有用信号):让它尽可能无衰减地通过电路我…...

台湾科技产业“小即是美”模式:从半导体到AI的敏捷创新网络构建

1. 从“小”处着眼:台湾科技产业的独特优势解析“台湾是个小岛。”这句话,我在与许多台湾科技业同仁交流时,常常听到。初听之下,这像是一种自谦,甚至带着些许对市场规模和地理局限的无奈。但深入接触后你会发现&#x…...

Claude技能构建指南|第五章 模式与故障排除(Patterns and Troubleshooting)

Claude技能构建指南|第五章 模式与故障排除(Patterns and Troubleshooting) 1. ① 本章核心主旨 本章提供5种高频复用的技能设计模式,并针对上传、触发、执行、MCP连接等常见问题给出标准化排查方案,学完可直接套用成熟…...

兔抗FANCI抗体亲和纯化,IP-WB全流程兼容设计,一站式解决FANCI蛋白分析功能

产品概述由艾美捷Bethyl Laboratories推出的FANCI抗体(货号A301-254A)是一款针对人源范可尼贫血互补组I蛋白(FANCI)的兔多克隆抗体,经抗原亲和纯化,以未偶联完整IgG形式提供。该抗体特异性识别人源FANCI蛋白…...

Taotoken多模型聚合平台为arm7边缘AI应用提供稳定API服务

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken多模型聚合平台为arm7边缘AI应用提供稳定API服务 对于在arm7架构硬件上部署轻量级AI应用的开发者而言,将大模型…...

开源智能抓取框架:为低成本机械爪赋予视觉与决策能力

1. 项目概述:当“机械爪”遇上“超能力”最近在机器人抓取与操作领域,一个名为openclaw-superpowers的项目引起了我的注意。这个项目名本身就充满了想象力——“OpenClaw”暗示着一个开源的机械爪平台,而“Superpowers”则直指为其赋予超越常…...

渗透测试之信息收集:这些技巧决定了渗透成败

渗透测试之信息收集:这些技巧决定了渗透成败作者:浅木先生前言 做渗透测试久了,你会越来越认同一个观点:信息收集的质量直接决定渗透测试的成败。 同样的目标URL,不同人扫出来的结果完全不同——有人只能扫出后台登录页…...

JavaWeb学习路线全解析

JavaWeb 的学习是一个系统性工程,需要从前端基础到后端核心,再到主流框架,最后通过项目实战来巩固。以下是一个为你量身定制的、清晰的学习路线,分为几个关键阶段,并附上每个阶段的核心要点和推荐实践。 第一阶段&…...

长期使用taotoken聚合api在项目中的稳定性主观体验分享

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken聚合API在项目中的稳定性主观体验分享 1. 项目背景与接入简述 我们团队负责一个面向内部的知识管理与智能问答系…...

IEC 61850开源库终极指南:5步构建工业级电力通信系统

IEC 61850开源库终极指南:5步构建工业级电力通信系统 【免费下载链接】libiec61850 Official repository for libIEC61850, the open-source library for the IEC 61850 protocols 项目地址: https://gitcode.com/gh_mirrors/li/libiec61850 libiec61850 是一…...

GaussDB 操作时间【玩转PB级数仓GaussDB(DWS)】

前言在使用 GaussDB DWS 进行数仓相关操作时,我们经常会涉及到对时间的操作,本文主要来讲解下有关时间操作的定义及函数格式化字符串模式描述HH一天的小时数(01-12)HH12一天的小时数(01-12)HH24一天的小时数(00-23)MI分钟(00-59)ss秒(00-59)MS毫秒(000-9…...

数字孪生软件篇教程(从零入门到工业落地)

前言 在数字孪生行业中,硬件决定真假,软件决定颜值与逻辑。很多新手误区:把数字孪生当成3D建模、做炫酷大屏。 真正工业级软件架构:三维建模 + 后端服务 + 数据中台 + 可视化引擎 + 仿真逻辑。 本篇为配套硬件篇专属软件教程,保持一模一样排版结构、通俗易懂、零基础入…...

企业级应用如何利用Taotoken多模型能力优化AI服务调用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业级应用如何利用Taotoken多模型能力优化AI服务调用 在构建依赖大语言模型的企业级应用时,开发团队常面临模型选型单…...

2026年IEEE TASE,基于不平衡与平衡竞争策略辅助的双种群优化算法+约束多目标优化,深度解析+性能实测

目录1.摘要2.CMOPs3.提出方法4.结果展示5.参考文献6.代码获取7.算法辅导应用定制读者交流1.摘要 针对具有复杂碎片化可行域约束多目标优化难题,本文提出一种基于不平衡与平衡竞争策略辅助的双种群算法(UBCSO),通过平衡种群的均匀…...

3PEAK思瑞浦 TP2272-SO1R SOP8 精密运放

特性 增益带宽积:7MHz 高斜率:20V/us 宽电源范围:3.1V至36V或2.25V至18V 低失调电压:0.5mV(最大值) 低输入偏置电流:30pA(典型值) 轨到轨输出电压范围 单位增益稳定: 工作温度范围:-40C至125C...

测试工程师的副业指南:利用专业技能实现月入过万

一、解锁测试工程师的副业潜力在软件行业高速发展的今天,测试工程师早已不再是仅仅围绕着“找bug”打转的角色。他们凭借着对软件质量把控的专业能力、对各类系统架构的深入理解以及严谨的逻辑思维,在副业领域拥有着得天独厚的优势。越来越多的测试工程师…...

3PEAK思瑞浦 TPA1731-S5TR SOT23-5 运算放大器

特性 供电电压:4.5伏至36伏 偏移电压:最大士75伏 差分输入电压范围至电源轨,可作为比较器工 作 轨到轨输入和输出 带宽:3MHz 斜率:4V/us 低噪声:21nV/vHz(1kHz时) 高电容负载驱动能力:10nF 工作温度范围:-40C至125C...

Arm MAP性能分析工具使用指南与优化技巧

1. Arm MAP性能分析工具概述在现代高性能计算(HPC)领域,性能分析工具已成为开发者优化应用程序的关键利器。Arm MAP作为一款专业的跨平台性能分析工具,能够帮助开发者深入理解应用程序的运行行为,定位性能瓶颈,并针对性地进行优化…...

2026公考培训机构综合评测:粉笔教育领跑,线上线下一体化成关键优势

【评测说明】 2026年公考培训市场持续分化,考生在选择机构时,不再只看“名师”或“价格”,而是综合考量上榜概率、资金安全、学习便捷性。本文从上岸数据可验证性、性价比、退费效率、师资体系稳定性、线上线下覆盖能力五大维度,对…...

面向少儿的 AI 背单词 APP开发

开发一款面向少儿的 AI 背单词 APP,核心在于将“机械记忆”转化为“交互式探索”。结合 2026 年主流的 AI 智能体技术,其主要功能可以归纳为以下几个维度。1. 沉浸式动态语境生成不同于传统的静态例句,AI 会根据孩子的兴趣(如恐龙…...

windows系统下操作GaussDB(DWS)【玩转PB级数仓GaussDB(DWS)】

数据仓库服务GaussDB(DWS) 是一种基于华为云基础架构和平台的在线数据处理数据库,提供即开即用、可扩展且完全托管的分析型数据库服务。GaussDB(DWS)是基于华为融合数据仓库GaussDB产品的云原生服务 ,兼容标准ANSI SQL 99和SQL 2003,同时兼容…...