PostgreSQL 存储与索引系列(四):高级调优与内核机制——并发、日志、内存与分区
PostgreSQL 存储与索引系列(四):高级调优与内核机制——并发、日志、内存与分区 这是系列第四期,也是收官之篇。我们将深入 PostgreSQL 的高级特性与性能调优核心:并发控制与锁、事务隔离级别、预写日志(WAL)与检查点、关键内存参数调优,以及分区表的维护策略。结合前三期的存储和索引知识,你已具备构建高可用、高性能 PostgreSQL 系统的……
PostgreSQL 存储与索引系列(三):查询优化实战——执行计划、统计信息与反模式诊断
PostgreSQL 存储与索引系列(三):查询优化实战——执行计划、统计信息与反模式诊断 这是系列第三期,聚焦查询优化。我们将深入解读执行计划,学习如何利用统计信息和 ANALYZE 做出正确决策,识别并避免常见的慢查询反模式,并借助 pg_stat_statements 等工具定位真实瓶颈。前两期关于存储页、可见性映射和各类索引的知识,将在这里融会贯通。……
PostgreSQL 存储与索引系列(二):索引的艺术——从 B-tree 到 BRIN 的全景指南
PostgreSQL 存储与索引系列(二):索引的艺术——从 B-tree 到 BRIN 的全景指南 这是系列第二期,聚焦 PostgreSQL 的索引世界。我们会逐一拆解 B-tree、Hash、GiST、GIN、BRIN 等索引的内部机理与适用场景,并介绍部分索引、表达式索引等高级特性。结合上一期关于存储页、ctid、可见性映射的知识,你将对索引如何加速……
PostgreSQL 存储与索引系列(一):数据在磁盘上如何安放——表、页、TOAST 与 VACUUM
PostgreSQL 存储与索引系列(一):数据在磁盘上如何安放——表、页、TOAST 与 VACUUM 这是系列文章的第一期,专注 PostgreSQL 的存储核心:表与行的组织、磁盘页结构、大字段的 TOAST 技术,以及不可或缺的 VACUUM 机制。后文还会介绍表分区,为下一期索引专题打下坚实基础。 1. 从逻辑表到物理文件 在 PostgreSQL……
PostgreSQL 事务与并发系列 · 第五期
PostgreSQL 事务与并发系列 · 第五期 实战调优:事务的常见陷阱与最佳实践 前四期我们深入了 MVCC、锁、隔离级别与序列化异常。本期将把这些知识落地到生产环境的日常运维与开发中,剖析长事务、空闲事务、表膨胀、死锁超时等真实痛点,并提供一套可立即上手的监控、报警与优化方案。 一、长事务:性能与运维的头号杀手 1.1 为什么长事务如此危险? 阻……
PostgreSQL 事务与并发系列 · 第四期
PostgreSQL 事务与并发系列 · 第四期 事务隔离级别深度测试与序列化异常 前三期我们构建了从 MVCC 到锁机制的完整知识体系。本期将聚焦三种隔离级别的实际行为边界,通过可复现的案例演示“不可重复读”“幻读”以及最隐蔽的“写偏斜(Write Skew)”,同时揭开 PostgreSQL 可串行化快照隔离(SSI)的神秘面纱。 一、隔离级别速览与默……
PostgreSQL 事务与并发系列 · 第三期
PostgreSQL 事务与并发系列 · 第三期 锁机制与死锁处理实战 前两期我们深入了 MVCC 与快照隔离,知道了“读不阻塞写”。但有些场景必须靠锁来强制串行化。本期将带你掌握 PostgreSQL 中各类锁的用法、冲突关系、死锁成因与排查,并提供生产环境可用的监控脚本。 一、为什么有了 MVCC 还需要锁? MVCC 主要解决了 读写冲突(读不阻塞写……
PostgreSQL 事务与并发系列 · 第二期
PostgreSQL 事务与并发系列 · 第二期 深入 MVCC:可见性判断与事务快照揭秘 第一期我们建立了 ACID 和 MVCC 的基本概念。本期将掀开 MVCC 的引擎盖,剖析元组头部的 xmin/xmax、事务快照的内存结构,并通过实战案例看清“读已提交”与“可重复读”的本质差异。 一、回顾:MVCC 的核心思想 PostgreSQL 中,每一行数……
PostgreSQL 事务与并发系列 · 第一期
PostgreSQL 事务与并发系列 · 第一期 从 ACID 到 MVCC:PostgreSQL 并发控制的核心思想 本系列将带你系统掌握 PostgreSQL 事务与并发的每一步。第一期从 ACID 原则谈起,揭开 MVCC 如何实现”读不阻塞写、写不阻塞读”。 一、引言 在关系型数据库的世界里,事务(Transaction)是……
SQL 与查询优化(PostgreSQL 篇)· 第七期
SQL 与查询优化(PostgreSQL 篇)· 第七期 查询缓存、连接池与中间件优化 从第一期到第六期,我们的焦点一直围绕单实例 PostgreSQL:执行计划、索引设计、连接算法、统计信息、物化视图与分区表,以及锁与并发控制。但是,当到达了几百万乃至上亿行数据之后,应用程序不仅查询复杂,连接数也可能成千上万。 本期我们跳出数据库内核,进入中间件层,探讨查……