IT用語集 › データベース › ブロート

ブロート

データベース Svenska → 更新: 2026-10-21

MVCCがテーブルやインデックスに残す無駄な領域。UPDATEは実際には新しい行バージョンを書き込み、古い行を「死んだ」ものとして残すだけで、掃除が入るまで領域は解放されない。

掃除を担当するのはautovacuumである。死んだ行は再利用可能になるが、通常はOSに領域が返却されるわけではない。そのため更新の多いテーブルは、データ量の10倍もの容量を占めることがあり、キャッシュ効率は落ち、スキャンも遅くなる。よくある原因はautovacuumが無効なことではなく、何かがそれを妨げていることだ。長時間実行中のトランザクション、放置されたレプリケーションスロット、使われていないプリペアドトランザクションがあると、死んだ行が「見える」状態のままになり回収できない。対処法としては、pg_repackがロックなしでテーブルを書き直し、VACUUM FULLは排他ロックを取って同じことを行う。

← 用語集に戻る