PostgreSQL 的 SQL 查询之旅
当输入 SELECT * FROM users WHERE id = 42;并执行时,这条看似简单的 SQL 语句,实际上会在 PostgreSQL 内部触发一段复杂而精密的处理流程。该过程涉及多个后台进程、精细的内存管理机制,以及数十年数据库优化研究的成果。查询执行的五个阶段无论查询复杂与否,在 PostgreSQL 中都会经历同一条基本路径:解析(Parsing) → 分析(Anal
外键的本质竟然是触发器?深入解析 PostgreSQL 约束底层
什么是约束在定义表或列时,可以为数据附加校验或强制规则的,这些规则称为约束。数据类型本身只能提供较粗粒度的限制,例如 numeric 无法限定只能为正数。更具体的规则(如唯一性、取值范围等)需要通过约束来实现。约束用于保障数据完整性。当插入或默认值违反约束时,PostgreSQL 会直接报错。本质上,约束是数据库层面强制执行的数据规则。一旦缺失或使用不当,数据问题往往会悄然积累,并最终演变为难以排
Postgres 18 默认开启数据校验及升级应对方案
在 Greg Sabino Mullane 编写的最新 Postgres 补丁中,Postgres 对数据完整性机制进行了调整:从 Postgres 18 开始,数据校验(data checksum)功能默认启用。这一变更在发布说明中看起来只是一个相对较小的调整,但针对的是数据库运行过程中较难察觉的风险之一—静默数据损坏(silent data corruption),对系统可靠性具有实际意义。本
PostgreSQL 中的“脏页(Dirty Pages)”是什么?
PostgreSQL 以固定大小的数据块(Page)存储数据,默认大小为 8 KB。当客户端执行更新或插入操作时,PostgreSQL 并不会立即将变更写入磁盘,而是先将相关数据页加载到共享内存(Shared Buffers)中,在内存中完成修改,并将该页面标记为“脏页”。所谓“脏页”,是指内存中的页面版本已经新于磁盘上的对应版本。在向客户端返回操作结果之前,PostgreSQL 会先将变更记录写
瀚高硬核助力 PG 社区:Postgres 19 迎来并行 TID 范围扫描,速度提升 3 倍
对于任何需要维护超大表(更新旧数据、分批删除、数据迁移)的 DBA 或开发者来说,使用 ctid(元组物理位置)将大表切分为多个小块进行处理是标准操作。然而,直到现在,这种操作都有一个巨大的痛点:它严格依赖单进程。随着最近的一个 Commit (0ca3b169) 合并入 PostgreSQL 19 (master 分支),TID 范围扫描(TID Range Scans)终于支持并行了
PostgreSQL 19:超高速聚合的全新突破
PostgreSQL 18 正式发布后,PostgreSQL 19 的性能改进方向已经引发广泛关注。其中,聚合性能的重大优化被认为是最 具突破性的改进之一,并且这一优化对现有应用完全透明,无需修改代码、无需调整参数,即可直接生效。PostgreSQL 中的数据聚合在 PostgreSQL 此前的版本中,聚合的基本执行规则是:先关联(Join),后聚合(Aggregate)典型示例如下:SELECT
Postgres 18:Skip Scan - 摆脱最左索引限制
Postgres 18 于 2025 年 9 月 25 日发布,带来了多项性能增强和新功能。随着版本迭代,Postgres 在关键业务与非关键业务场景中均表现出更高的稳健性、可靠性和响应能力。Postgres 18 包含多项实用增强特性,此前已被关注的异步 I/O(AIO)子系统便是重要性能优化之一。该特性能够提升顺序扫描、位图堆扫描和 VACUUM 操作期间的 I/O 吞吐量,可为多数 Post
PostgreSQL 18 - 时间约束 (Temporal Constraints)
PostgreSQL 18 引入了一项强大的新功能,允许你在时间段内强制执行唯一性:时间约束(Temporal Constraints)。通过这一新增功能,你现在可以在定义 UNIQUE、PRIMARY KEY 或 FOREIGN KEY 约束时,利用日期范围(Date Range)或时间戳范围(Timestamp Range)字段,比以往更容易地防止数据重
一文读懂 PG18 EXPLAIN 新字段:Index Searches
在 PostgreSQL 18 中,你会在 EXPLAIN ANALYZE 的输出结果中看到 “Index Searches”(索引搜索次数)相关行。如果你和我一样好奇这些行到底是什么意思,那这篇文章就是为你准备的。标准情况标准情况是 “Index Searches: 1”,表示对索引进行一次遍历。如果所需数据都集中在索引的同一区域,这种情况可能非常高效。但如果所需条目并非集中存储,那么扫描过程中
PG预写式日志解码的艺术与应用
本文整理自 IvorySQL 2025 生态大会暨 PostgreSQL 高峰论坛的演讲分享,演讲嘉宾:李传成,walminer 作者。本文内容主要包括:逻辑解码的基本原理高级逻辑解码特性walminer 数据恢复实战walminer pgto server 实战逻辑解码的基本原理数据库 INSERT 操作的 WAL 日志解析与使用流程物理使用(二进制回放流程)当数据库执行INSERT操作时,WA
无需安装!PostgreSQL 18 Windows 便携部署方案
在 Windows 环境中使用 PostgreSQL 的常见做法是下载安装程序并进行配置。该方式操作简便,可自动完成依赖组件和系统服务的部署。然而,对于无需 PostgreSQL 持续运行、需要在多个版本之间灵活切换,或希望具备可复制至任意计算机并直接运行的便携式环境的场景,本文将介绍一种更灵活的实现方案。该方案仅适用于个人开发环境。在未进行安全加固的情况下,不应将其用于共享或生产部署等场景。下载
Oracle 19c数据库迁移到IvorySQL 4.6实战
1. 背景在国家数字化转型与信创产业加速推进的背景下,数据库作为信息系统的核心基础设施,其国产化替代已成为企业数字化建设的重要战略方向。Oracle 数据库凭借成熟的技术体系长期占据市场主导地位,但在自主可控、成本优化及适配本土生态等需求驱动下,基于开源技术演进的国产数据库逐渐成为迁移替代的优选方案。IvorySQL 作为一款兼容 PostgreSQL 生态的国产数据库,不仅继承了 Postgre
在一台机器上搭建一体化 Ceph 存储集群
概述Ceph 是一个开源的软件定义存储平台,它在单个分布式计算机集群上实现对象存储,并提供对象级、块级和文件级存储的三合一接口。Ceph 存储集群由 Ceph 监视器、Ceph 管理器、Ceph 元数据服务器和 OSD 组成,它们协同工作来存储和复制数据,供应用程序、Ceph 用户和 Ceph 客户端使用。Ceph 还提供了使用 PostgreSQL 来利用网络存储的选项。在这篇文章中,我将指导你
直播回顾|PostgreSQL 18 六大新特性深度解析
10 月 16 日,IvorySQL 社区组织了一场线上直播,主题为:PostgreSQL 18 六大新特性深度解析。以下为本场直播的回顾。嘉宾简介王世鑫,数据库软件工程师张虎,数据库软件工程师权宗亮,数据库软件工程师兰柯,数据库软件工程师史跃飞,数据库软件工程师胡勋棋,数据库软件工程师矫顺田,数据库软件工程师特邀主持人:彭冲,PostgreSQL ACE,PostgreSQL 中文社区委员,Ga
PostgreSQL 18 中国贡献者经验分享:开源参与的四点建议
2025 年 9 月 25 日,PostgreSQL 18 正式发布。该版本不仅修复了上百个问题,更带来了多项颠覆性的功能升级,例如全新的异步 I/O(AIO)框架、新增的跳跃式扫描(SKIP SCAN)技术,以及原生 UUIDv7 支持等,每一项升级都为用户带来更优质的使用体验。这些丰富的功能变化与大量的问题修复,离不开 PostgreSQL 社区贡献者们的积极参与。在 PostgreSQL 1
直播预告|PostgreSQL 18 六大新特性深度解析
PostgreSQL 18 已于 9 月 25 日正式发布。该版本包含大量改进,其中有多项新特性。在 PostgreSQL 18 发布后,IvorySQL 社区推出了一篇六大新特性解读的文章聚焦六大功能:PostgreSQL 18 新特性深度解析,引发了多人关注。本次直播,我们邀请到了本文的六位作者,为大家深度解析每一个功能的变化。同时,我们特别邀请了彭冲老师担任本次直播的主持人。观看直播即有机会
PostgreSQL 18 异步 I/O(AIO)调优指南
导语:PostgreSQL 18 中最大的变化是引入了异步 I/O (AIO) 子系统,这引出了一个问题:如何根据工作负载调整它?Tomas Vondra 这篇博客提供了如何设置 AIO 配置,并根据你的工作负载进行测试的实用指南。PostgreSQL 18 已正式发布,该版本包含大量改进。其中一项重大架构变更是异步 I/O(Asynchronous I/O,简称 AIO) ——它支持对 I/O
聚焦六大功能:PostgreSQL 18 新特性深度解析
PostgreSQL 全球开发组于 2025 年 5 月 8 日发布了 PostgreSQL 18 的首 个 Beta 版本,正式版也已于 9 月 25 日正式上线。本文 IvorySQL 社区将为大家拆解 PostgreSQL 18 的六大亮点特性。一、PG 异步 I/O(AIO)框架:迈出打破同步阻塞瓶颈的第一步PostgreSQL 18 全新引入异步 I/O 子系统。新机制允许特定场景下并行
PostgreSQL 上的向量搜索实践
本文整理自 IvorySQL 2025 生态大会暨 PostgreSQL 高峰论坛的演讲分享,演讲嘉宾:高策,TensorChord CEO。引言本文主要分享如何在 PostgreSQL 上进行向量的搜索。PostgreSQL 有非常多的 Extension,我们可以通过 Extension 的方式去扩展 PostgreSQL 能够支持的数据类型。这是 PostgreSQL 在全球流行的一个重要原
PostgreSQL 内机器学习的关键智能算法研究
演讲嘉宾:崔鹏,海能达数据库团队负责人、PostgreSQL ACE、PG 分会哈尔滨用户组leader。随着人工智能与机器学习的快速发展,数据库不仅作为数据存储与管理的核心基础设施,也逐渐成为机器学习任务执行的重要支撑平台。然而,传统数据库在存储结构选择、样本数据筛选、连接顺序优化等方面仍存在不足,难以满足机器学习在效率与精度方面的要求。为此,本文围绕 PostgreSQL 内的机器学习应用展开