Bruce Momjian 的旅行揭示了 Postgres 的未来
Bruce Momjian 不仅为 Postgres 发声,他也在倾听它的声音。今年夏天,他在四大洲的城市中,从夏洛特到深圳,与学生、企业领导者和开源新人坐在一起,每个人都有不同的故事,但都怀揣着同一个目标:构建一个开放、持久且免费的系统。作为 Postgres 的联合创始人及社区倡导者,在 EDB 的支持下,Bruce Momjian 几十年来致力于将 PostgreSQL 发展成一场全球运动。
如何使用 pg_rman 进行 PostgreSQL 的备份与恢复
概述PostgreSQL 是一种非常流行的开源关系型数据库管理系统,广泛应用于众多生产环境中。为了确保生产环境始终正常运行,您需要使用多种工具,其中备份与恢复工具是必不可少的。本篇博客将介绍一种专为 PostgreSQL 设计的备份与恢复工具,即 pg_rman。什么是 pg_rmanpg_rman 是一个免费的实用程序,专为 PostgreSQL 数据库的备份与恢复设计。它可以对整个数据库集群进
PGSQL运维优化:提升vacuum执行时间观测能力
6 月底济南召开的 HOW2025 IvorySQL 生态大会上,我在内核论坛分享了 "提升 vacuum 时间观测能力" 的主题,提出了新增统计信息的方法,增强 vacuum 执行时长的观测能力。同时也给大家分享了一些 DBA 上手内核的感悟。vacuum 在 PG 中是一个无法绕开的话题,甚至有些用户因为 vacuum 的特性而放弃 PG。老杨认为只要做好 vacuum 的
深入解析 PostgreSQL 外部数据封装器(FDW)的 SELECT 查询执行机制
引言PostgreSQL 中的外部数据封装器(Foreign Data Wrapper, FDW)是一种扩展,允许您像访问 PostgreSQL 数据库中的表一样,访问和操作存储在外部数据源中的数据。FDW 使 PostgreSQL 能够与多种数据存储系统(包括关系型和非关系型)进行集成,并以统一的方式在 PostgreSQL 环境中呈现这些数据。将一个表拆分成多个位于远程的较小表的操作也称为&n
探索表访问方法功能:顺序扫描分析
在之前的文章中,我们讨论了 PostgreSQL 表访问方法 API 的基础知识以及堆元组(heap tuple)与元组表槽(Tuple Table Slot,简称 TTS)之间的区别。本文将深入探讨 PostgreSQL 核心如何通过特定的 API 调用实现顺序扫描。涉及的 API为了实现顺序扫描,以下表访问方法 API 回调将会被调用:relation_size()slot_callbacks
深入 PostgreSQL 内部:5 个关键阶段拆解查询处理全流程
引言当您向 PostgreSQL 发送查询时,后端会经历多个处理阶段。每个阶段承担着不同的职责,以确保您能在最短时间内获得准确响应。虽然这些阶段可能庞大而复杂,但理解它们在查询处理中的角色对 PostgreSQL 开发者至关重要。本文将概述每个查询处理阶段的功能及其在 PostgreSQL 架构中的重要性。5 个查询处理阶段解析器(Parser)PostgreSQL 的解析器使用 lex(Flex
突破关系型边界:PostgreSQL 的 JSON 如何重新定义数据敏捷性
前言在本文中,我们将讨论 PostgreSQL 如何实现和处理 JSON 对象。读者需要具备一定的 Linux、Postgres 和 JSON 的基础知识,因为我们不仅会介绍这些新特性,还会讲解如何实现它们。本文是基于运行在 Ubuntu 23.04 上的 PostgreSQL 16(开发版本)撰写的。首先,我将简要回顾一下 JSON 的背景,然后讲解如何在 Postgres 中使用 JSON,最
深入理解 PostgreSQL Planner:简化扫描路径与查询计划
引言当向 PostgreSQL 发送查询时,查询通常会经过几个处理阶段,并最终返回结果。这些阶段如下所示:解析(Parse)分析(Analyze)重写(Rewrite)计划(Plan)执行(Execute)在本文中,我们将仅关注“计划”阶段或“规划器(Planner)”模块,因为这是最有趣或最复杂的阶段。我将分享我对规划器模块的理解,并探讨它如何处理一个简单的顺序扫描。规划器的目标非常简单:从可用
如何在 PostgreSQL 中运行 TLS 回归测试
概述本文将分享一个简单的步骤,介绍如何在 PostgreSQL 中运行 SSL/TLS 回归测试。Postgres 回归测试每当我们想要添加新功能或进行修复时,都应该运行 PostgreSQL 提供的测试,以确保没有损坏。如果新功能或修复没有相应的测试,我们应该考虑添加一些,以确保在未来进行其他更改时不会出现问题。PostgreSQL 提供了一份全面的文档,解释了所有可用的测试。例如,如果您想运行