ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

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

ご教授よろしくお願いいたします。
困り度:
  • 困っています
質問投稿日時:
07/05/02 14:38
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.1 確かにVACUUMをFULLオプションをつけて実行した場合に,その後VACUUMを行う必要はありません。
FULLオプションは,テーブルに対する排他ロックをかけてまで,不必要な行を削除するという動作をします。
逆に言うと,デッドロックが発生するぐらいのSQL文と平行でVACUUM FULLが走ってしまうと,そのSQL文は確実にデッドロックしてしまいます。
ディスクをかなり圧迫しているわけではない場合には,毎日行うVACUUMは「VACUUM」で,たまに「VACUUM FULL」でよいのでは?ないでしょうか。
回答者:maniacpapa
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:
07/05/05 23:15
この回答へのお礼VACUUM FULLすればVACUUMは必要ないという事で了解しました。
ご教授ありがとうございます。

今回、24H稼動のマイクロサーバ上でPGSQLを動かしており、
(そもそもこの時点で間違えている気がするのですが…)
マイクロサーバという制約上、1GのCFで動かしているので
空き容量が心配で今回のような質問をさせていただきました。

そもそも24H稼動のサーバにPGSQLを使った事がそもそもの間違いでした(;´д`)
代わりのDBソフトに入れ替えを検討したいと思います。

お忙しいところご教授ありがとうございました。