【PostgreSQL】VACUUMとは、VACUUM FULLの実行
VACUUM(バキューム)とは
PostgreSQLはデータを消しても実際には消えてはなく、
削除フラグがついていて見えなくなっているだけの状態です。
この削除データは定期的にきれいにする必要があり、この処理をVACUUMといいます。
※PostgreSQL 8.3以降、自動的にVACUUMされるようになっています。
VACUUM
VACUUMをするコマンドです。 ※pgAdminのクエリツールからも実行できます。
--テーブル名を指定してVACUUMする
VACUUM テーブル名;
--テーブル名を省略すると、すべてのテーブルを対象とします
VACUUM;
VACUUM FULL
VACUUMのオプションとしてFULLがあります。
FULLなし(通常のVACUUM)では、きれいにした領域をOSに返さないかわりに処理は早く、
FULLありでは、きれいにした領域をOSに返しますが処理は遅くなっています。
--通常のVACUUM ※テーブル名を省略で、すべてのテーブルを対象とします
VACUUM テーブル名;
--FULLオプションあり
VACUUM FULL テーブル名;
VACUUM ANALYZE
VACUUM ANALYZEは、VACUUM後にANALYZEを実行します。
--VACUUM+ANALYZEをする ※テーブル名を省略で、すべてのテーブルを対象とします
VACUUM ANALYZE テーブル名;
--すべてのテーブル指定では、時間がかかるので注意
VACUUM ANALYZE;
テーブルの最終VACUUM時間を確認する
次のselect文でvacuumの実行時間を確認できます。
select relname
, last_vacuum , last_autovacuum
from pg_stat_all_tables order by relname;