PostgreSQL 锁与阻塞分析
PostgreSQL 锁与阻塞全解析:8 种表级锁与 4 种行级锁的冲突矩阵、咨询锁、阻塞链与死锁的形成机制、pg_locks / pg_stat_activity / pg_blocking_pids 诊断手法、DDL 排队与热点行更新等典型场景的解法、lock_timeout 与死锁预防策略。
tag
PostgreSQL 锁与阻塞全解析:8 种表级锁与 4 种行级锁的冲突矩阵、咨询锁、阻塞链与死锁的形成机制、pg_locks / pg_stat_activity / pg_blocking_pids 诊断手法、DDL 排队与热点行更新等典型场景的解法、lock_timeout 与死锁预防策略。
PostgreSQL 批量加载全解析:COPY 的三种形态(文件 / STDIN / PROGRAM)、COPY 为何比 INSERT 快几个数量级、synchronous_commit / wal_level / unlogged 表等参数调优、COPY FREEZE 与加载后维护、并行加载与 pg_bulkload、以及应用侧批量写入的实践取舍。
pgvector 实战:vector / halfvec / bit 类型、余弦 / L2 / 内积距离运算符、IVFFlat 与 HNSW 索引选型、lists / probes / m / ef_search 参数调优、标量过滤下的向量检索、向量与全文检索的混合排序(RRF)、以及大规模向量表的性能与运维要点。
Citus 分布式 PostgreSQL 实战:coordinator / worker 架构、分布式表与参考表、分片键选择与共置(colocation)、查询路由与下推、分片再平衡与扩容、高可用与故障恢复、以及 Citus 的适用边界与常见限制。
PostgreSQL 并行查询(Parallel Query)全解析:执行器调用链、Gather / Gather Merge 汇聚节点、并行 Seq Scan 与并行位图扫描、Parallel Hash Join 与 Partial Aggregate、代价模型与并行度决策、max_parallel_workers 等参数调优、并行不安全函数与常见陷阱。
PostgreSQL 声明式分区(Declarative Partitioning)全解析:RANGE / LIST / HASH 三大策略选型、分区裁剪(Partition Pruning)原理与 EXPLAIN 验证、DETACH/ATTACH 在线维护、自动分区与 pg_partman、索引与唯一约束的分区限制、分区数量对计划时间的影响,含生产迁移路径与常见坑。
Rust 数据库访问两大主流方案深度对比:sqlx 的编译期 SQL 校验与异步驱动、Diesel 的 DSL 查询构建器与类型安全、连接池(sqlx::Pool 与 deadpool/r2d2)选型、迁移工具、类型映射与 NULL 处理、事务与批量写入实践,附选型决策表。
彻底讲清 PostgreSQL 的时区与日期时间:timestamp 与 timestamptz 的内部存储差异、TimeZone 参数与会话时区、AT TIME ZONE 的两种用法、now 与 clock_timestamp 等函数区别、date_trunc 与 date_bin 与 extract 与 to_char 技巧、夏令时不存在与重复时刻的陷阱、interval 与月份边界、generate_series 时间轴、与 JDBC 和 Prisma 的协同配置。
深入 PostgreSQL 物理存储层:数据目录与 relfilenode 命名、1GB 段文件切分、8KB 页的 PageHeaderData 头部字段、ItemIdData 行指针与 HeapTupleHeaderData 元组头部、null bitmap 与对齐填充、fillfactor 与页内空闲空间、FSM 与 VM 映射文件、TOAST 行外存储与四种压缩策略,并用 pageinspect 实测页内容。
系统讲解 PostgreSQL FDW:fdw_handler 与 FdwRoutine 回调架构、postgres_fdw 的 CREATE SERVER 与 USER MAPPING、IMPORT FOREIGN SCHEMA、use_remote_estimate 与 fetch_size 与 async_capable 选项、JOIN 与 ORDER BY 与聚合的下推条件、file_fdw 读 CSV 与日志、dblink 对比、远程事务与两阶段提交、批量写入与网络往返调优。
系统讲解 PostgreSQL 压测方法论:基准与负载与压力与稳定性四类测试的区别、pgbench 初始化与缩放因子、内置与自定义脚本、并发与限流参数、结果指标解读、常见压测误区、用 pg_stat_statements 与等待事件与 iostat 定位瓶颈、环境隔离与可重复性、压测报告模板。
拆解 PostgreSQL 预写日志与崩溃恢复:XLogRecord 与块引用结构、full_page_writes 与 torn page、hint bits、LSN 与 pg_wal 段文件命名、wal_level 三级差异、检查点与 pg_control 记录的 redo 起点、恢复的 analysis 与 redo 流程、pg_waldump 读日志实测、archive_mode 归档与 synchronous_commit 的持久性权衡。
从零开发 PostgreSQL C 扩展:control 文件与版本化 SQL 脚本、PG_MODULE_MAGIC 与 _PG_init、PG_FUNCTION_INFO_V1 与 Datum 调用约定、PG_GETARG 与 PG_RETURN 宏、text 与 bytea 与数组类型处理、palloc 与内存上下文、ereport 与 PG_TRY 错误处理、SPI 执行 SQL、自定义类型与操作符类、PGXS 构建、REGRESS 回归测试与版本兼容。
深入 Elixir 后台任务框架 Oban:Postgres 队列的架构与表结构、Worker 定义与返回值语义、唯一性约束与指数退避重试、Cron 定时插件、队列隔离与并发控制,以及 Telemetry 可观测、Oban Web UI 与 OTP 监督树集成。
系统讲解数据库与查询层的可观测性建设:慢查询日志与语句归一化、连接池指标与等待分析、执行计划与索引效率、数据库内部等待事件、从数据库指标到应用链路的端到端定位,以及常见避坑与最佳实践清单。
面向时序场景的 PostgreSQL 实践指南。涵盖时序数据的写入模式与时间索引选型、BRIN 索引原理与适用边界、声明式分区(RANGE 按时间)的建表与管理、连续聚合与降采样、压缩与保留策略,以及 TimescaleDB 超表与原生分区的取舍。
深入 PostgreSQL 的高级数据类型。涵盖数组类型的构造、下标与 GIN 索引、范围类型与排他约束、复合类型的定义与展开、枚举类型的排序与演进、hstore 键值存储,以及各类型在索引、约束与查询写法上的最佳实践和常见陷阱。
PostgreSQL 大版本升级全流程指南。涵盖升级前兼容性评估、pg_upgrade 的链接与拷贝模式、逻辑复制的零停机滚动升级、升级后 ANALYZE 与统计信息重建、回滚方案设计,以及各版本间的行为差异与扩展兼容性检查。
PostGIS 地理空间开发实战。涵盖 geometry 与 geography 类型的选择、SRID 坐标系统与投影、GiST 与 SP-GiST 空间索引的构建、ST_Contains 与 ST_DWithin 等关系运算、距离与面积计算、GeoJSON 与 WKT 的互转,以及空间查询的性能调优与常见踩坑。
PostgreSQL 原生异步消息机制实战。涵盖 LISTEN、NOTIFY 与 pg_notify 的语义、事务边界与投递时机、payload 大小限制与去重规则、与触发器联动实现数据变更推送、在 Node.js 与 Python 驱动中的用法,以及连接池、可靠性与替代方案的取舍。