本文へスキップ

オートバキュームとは?

おーとばきゅーむ

オートバキュームとは、PostgreSQLデータベースが自動的にテーブルのメンテナンス(不要行の回収・統計情報更新)を行う仕組みです。

オートバキューム(autovacuum)とは、PostgreSQLに組み込まれた自動メンテナンス機能です。データベースの更新・削除操作によって生じる「不要データ(デッドタプル)」を定期的に回収し、テーブルパフォーマンス整合性を維持する役割を担います。

PostgreSQLはMVCC(Multi-Version Concurrency Control)という同時実行制御の仕組みを採用しており、行を更新・削除しても古いバージョンのデータをすぐには物理削除しません。この古いデータが蓄積するとテーブルの肥大化やパフォーマンス低下を招きます。オートバキュームはバックグラウンドで動作し、以下の処理を自動的に行います。

  • VACUUM:デッドタプルを回収してディスク領域を再利用可能にする
  • ANALYZE:テーブルの統計情報を更新し、クエリプランナーが最適な実行計画を選べるようにする
  • トランザクションIDの周回(ラップアラウンド)防止

オートバキュームは設定パラメータ(autovacuum_vacuum_threshold、autovacuum_vacuum_scale_factor など)によって動作のタイミングや頻度を調整できます。デフォルトでは更新・削除された行の割合が一定値を超えると起動します。大規模なデータ更新が頻繁に行われるシステムでは、チューニングを適切に行わないとI/O負荷の集中やロック競合が起きる場合があります。PostgreSQL運用の重要な知識のひとつです。

使い方・例文

「大量のレコードを削除した後にテーブルのサイズが縮まないのは、オートバキュームがまだ実行されていないためで、手動でVACUUMを実行すると解消される」というように、PostgreSQLの運用・チューニングの文脈で登場します。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語