• ベストアンサー

VACUUMとVACUUM FULLについて

掲題のコマンドですが、7.2以降では 【VACUUM】 ・データ削除(DELETE済み)領域を再使用可能に。 【VACUUM FULL】 ・削除領域を開放しディスクサイズを小さく。7.1までのVACUUMと同等。 となっていることは理解できたのですが、7.2以降のバージョンでは 例えば毎日VACUUM FULLを行っていると仮定した場合、別途VACUUMを行う必要はありませんよね? # 7.1以前ではVACUUMしかなかったわけだし…。 ご教授よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

確かにVACUUMをFULLオプションをつけて実行した場合に,その後VACUUMを行う必要はありません。 FULLオプションは,テーブルに対する排他ロックをかけてまで,不必要な行を削除するという動作をします。 逆に言うと,デッドロックが発生するぐらいのSQL文と平行でVACUUM FULLが走ってしまうと,そのSQL文は確実にデッドロックしてしまいます。 ディスクをかなり圧迫しているわけではない場合には,毎日行うVACUUMは「VACUUM」で,たまに「VACUUM FULL」でよいのでは?ないでしょうか。

KNIGHT11
質問者

お礼

VACUUM FULLすればVACUUMは必要ないという事で了解しました。 ご教授ありがとうございます。 今回、24H稼動のマイクロサーバ上でPGSQLを動かしており、 (そもそもこの時点で間違えている気がするのですが…) マイクロサーバという制約上、1GのCFで動かしているので 空き容量が心配で今回のような質問をさせていただきました。 そもそも24H稼動のサーバにPGSQLを使った事がそもそもの間違いでした(;´д`) 代わりのDBソフトに入れ替えを検討したいと思います。 お忙しいところご教授ありがとうございました。

関連するQ&A