PostgreSQL

PostgreSQLのVACUUM

estis2013/12/13 (金) 22:32 に投稿

CONCURRENT VACUUM と FULL VACUUM がある。

CONCURRENT VACUUM は、ファイルサイズは変わらない。(ブロック毎の削除だから)
FULL VACUUM では、ファイルサイズが縮小される場合がある。

CONCURRENT VACUUM は、ShareUpdateExclusiveLock をかけるので読み取り可能。
FULL VACUUM は、AccessExclusiveLock をかけるので、他ユーザーは読み書き不可。

FULL VACUUM の処理は、8.4までと9.0からで異なる。
8.4までは、インデックスの再構築は行わない。
9.0からでは、一時的に容量が2倍程度になる。