IT用語集 › データベース › インデックスの肥大化

インデックスの肥大化

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

削除されたエントリが疎なページを残し、それが詰め直されないせいで、本来の3倍の容量を食っているインデックス。

原因は MVCC にある。更新すると新しい行バージョンができ、同時に新しいインデックスエントリも作られるが、古いエントリは vacuum が片付けるまで残る。空いた領域が再利用されるのは、新しい値がたまたまそのページに属する場合だけで、タイムスタンプのように単調増加するキーではほぼ起きない。結果として半分空のページだらけの B-tree になり、読むページが増え、キャッシュ効率が落ち、検索が遅くなる。

測定には pgstattuple 拡張や定番の推定クエリを使う。対処は、書き込みを止めずにインデックスを再構築できる REINDEX CONCURRENTLY(PostgreSQL 12 以降)、古いバージョンなら pg_repack である。

← 用語集に戻る