PostgreSQL:メンテナンス
●バキューム
PostgreSQL は、「追記型」と呼ばれる方式を採用しています。
データを削除する場合、
外部的には、もちろん削除されて見えますが、
データベースの内部的には、
データそのものを消したりはせずに、
該当データに削除マークを付けるだけです。
また、
更新する時でも、更新対象の既存のデータに削除マークを付けたうえで、
新しいデータを「追加」します。
追記型の長所は、何といっても動作が速い事です。
データを削除した後の隙間を埋めたり、
更新でデータ量が増えるときに、
追加分、領域を広げたり移動したりしなくて済むからです。
一方、短所は、
データを追記する一方なので、
どんどんデータのサイズが膨らんでしまう事です。
そこで、バキュームを使って、
不要なデータ領域を詰めたり整理したりしなければなりません。
●バキュームの実行:PgAdmin
バキュームの実行の仕方ですが、
一番、基本的なのが、PgAdmin を使う方法です。
具体的には、
・PgAdmin のデータベース名 (例えば sql_sample) を右クリック
・「メンテナンス(M)...」を選ぶ
・メンテナンス・オペレーション:VACUUM
・VACUUMオプション:FULL にチェック
・[OK]
これで、しばらく待つと、バキュームが終了します。
●バキュームの実行:Auto VACUUM
PgAdmin の実行は簡単ですが、
一々、人手で実行するのは面倒です。
で、
VACUUM を定期的に自動実行してくれる、
Auto VACUUM という機能があります。
...が、
postgresql.conf をいじる必要があって、
専門的なので、ここでは触れない事にします。