🐘 MVCC 元组版本链 + VACUUM 回收过程可视化

左:场景操作时间线 | 中:堆页(每行物理位置)+ 索引项 | 右:事务状态、可回收阈值、统计

📜 场景脚本

    💾 堆表(Heap)+ 索引

    🌲 索引(按 nickname / id)

    🧠 事务与统计

    活跃事务(snapshot)

    可见性 / 可回收

    当前 xid
    最老活跃 xmin (oldest_xmin)
    可回收水位(xid < ?)
    活元组 / 死元组 / 已回收 — / — / —
    relfrozenxid(防回卷推进)

    系统消息

    📖 可见性判断公式
    对元组 t 与事务 my_xid 的快照 S:
      ① t.xmin 已 ABORT      → 不可见
      ② t.xmin >= S.xmax     → 不可见
      ③ t.xmin in S.xip      → 不可见(创建者快照时未提交)
      ④ t.xmax = 0 / ABORT   → 可见
      ⑤ t.xmax >= S.xmax     → 可见
      ⑥ t.xmax in S.xip      → 可见
      否则                    → 不可见
    活元组(alive) 死元组(dead) 冻结元组(FROZEN) 空槽(VACUUM 回收) HOT 标签