質問 |
||
| 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ソフトに入れ替えを検討したいと思います。 お忙しいところご教授ありがとうございました。 |