autovacuum の使い方

自動の掃除と統計

書き方

SHOW autovacuum;
SELECT name, setting FROM pg_settings WHERE name LIKE 'autovacuum%';
ALTER TABLE 表 SET (autovacuum_vacuum_scale_factor = 0.01);
ALTER TABLE 表 RESET (autovacuum_enabled);

autovacuum は 1 分ごと(autovacuum_naptime)に表を見回り、不要な行が「autovacuum_vacuum_threshold + autovacuum_vacuum_scale_factor × 行の数」を超えた表を VACUUM、変わった行が多い表を ANALYZE します。大きな表は割合のしきい値に届きにくいので、表ごとに小さくします。結果は pg_stat_user_tables の last_autovacuum・autovacuum_count で確かめます。このシミュレーターでは、\! sleep 60 で 1 分が経ちます。

例

ALTER TABLE big_log SET (autovacuum_vacuum_scale_factor = 0.01);
\! sleep 60

実際に打って練習する

PostgreSQL DBA コースの Lv26「自動の掃除 autovacuum」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

すべてのレベルが、プラチナ以上のプランで遊べます。

PostgreSQL の管理コマンド一覧(DBA)へ戻る