木匠钉子
Skip to content
博客

标签: internals

所有带有 "internals" 标签的文章。

2026

10 月 的文章,展开或收起
  1. 从索引命中到查询结果

    索引找到候选位置后,查询还要处理版本可见性、必要的条件复验和剩余过滤。从几份执行计划出发,看 Bitmap、Index Only Scan 和 GIN 怎样通过 AM 接口接上这些工作。

  2. B-tree 里的重复 Key 与旧记录的清理

    从一次阻止了 HOT 的普通 UPDATE 出发,解释 Unique Index 为什么允许重复 Key、B-tree 如何在插入路径上清理旧版本,以及 VACUUM 清理完成之后,空间为什么仍可能留在 Index 文件里。

  3. B-tree 的并发搜索与页面分裂

    一个 Backend 拿着过期的 Downlink 走进旧 Page,另一个刚好完成了 Split。High Key、Rightlink 以及 Incomplete Split,如何让这次并发搜索继续找到正确的 Key。

  4. Heap Page 里的旧版本,什么时候会被清理

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