木匠钉子
Skip to content
博客

文章

这里是我发布的所有文章。

2026

10 月 的文章,展开或收起
  1. Heap Page 里的旧版本,什么时候会被清理

    从一个 DELETE 留下的死元组出发,看它经过 Visibility Horizon、Page Pruning、LP_DEAD 和 Index Cleanup,最后能变成什么样;以及 VACUUM FULL 为什么要重新造一份 Heap。

9 月 的文章,展开或收起
  1. PostgreSQL 是怎么把 Tuple 写进 Heap 的

    顺着一次 Tuple 写入,看看 FSM、Visibility Map、Buffer Lock 和 WAL 是怎么在 Heap AM 里接到一起的。

  2. Checkpoint 调优,到底在调什么?

    Checkpoint 引起的 I/O 尖峰和延迟抖动,可能来自触发太频繁,也可能来自某一轮写得太重。把一次 Checkpoint 拆成 trigger、write、sync 三段,再顺着 WAL、pg_wal 和 Recovery 往下看,这几个参数各自管什么就清楚了。

  3. Checkpoint、BgWriter、WAL Writer,PG 的三个后台写进程

    Checkpointer、Background Writer 和 WAL Writer 都会在后台写盘,但它们守的是三个不同的边界:Recovery 从哪里开始、Buffer 能不能顺利复用、WAL 推进到了哪里。这三个边界之间,又一直在互相借力。