【PostgreSQL】VACUUMとは、VACUUM FULLの実行

PostgreSQL構文

スポンサーリンク

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;