#author("2021-05-17T02:24:26+00:00","default:admin","admin")
#author("2021-05-17T02:25:36+00:00","default:admin","admin")
-[[PostgreSQLのvacuumについて調べたメモ:https://qiita.com/neustrashimy/items/b3d64b749582b32ad0ff]]
-[[【PostgreSQL】VACUUMとは、VACUUM FULLの実行:https://postgresweb.com/post-5194]]
-[[PostgreSQL VACUUM で年末大掃除:https://www.techscore.com/blog/2018/12/18/postgresql-vacuum%E3%81%A7%E5%B9%B4%E6%9C%AB%E5%A4%A7%E6%8E%83%E9%99%A4/]]
-[[VACUUMがdead rowsを削除しない3つの理由(Cybertec Blogより):https://yakst.com/ja/posts/5174]]

-[[PostgreSQLの、テーブル・インデックスのメンテナンスについて:https://goodbyegangster.hatenablog.com/entry/2019/05/16/223803]]

-[[24.1.定期的な掃除機がけ:https://runebook.dev/ja/docs/postgresql/routine-vacuuming]]

*概要 [#m59788b8]
-Vacuum処理とは、データ削除などで生じた不要領域の回収などを行う処理
-PostgreSQL 9.5で、複数のテーブルを対象にパラレル処理でVacuumを行える機能が追加された
-PostgreSQL 13では同一テーブル内で複数のインデックスを対象に並列処理が可能になった

*AUTO VACUUM機能 [#bde57ce5]
-[[PostgreSQL 13 自動バキューム(AUTO VACUUM):https://changineer.info/server/postgresql/postgresql_auto_vacuum.html]]
-[[自動VACUUMの状況を確認する:https://qiita.com/mkyz08/items/ffc34c13510bd1c5adb1]]

-PostgreSQLには「AUTO VACUUM」機能が搭載されており、自動で随時VACUUMが実行されるため、多くの場合問題とならない
-テーブルによって追加・更新・削除の頻度、規模は様々であるため、AUTO VACUUM機能によるVACUUM実行のタイミングが適切でないケースが出てくる

-auto vacuum処理では、同時に統計情報の更新も行ってくれる
-別途 analyze コマンドも用意されているが、自動処理に任せてしまうのが推奨とのこと

*VACUUMに関する注意点 [#h0906007]
-VACUUM FULLはテーブルに排他ロックを必要とするうえ、処理に非常に長い時間を要する。そのため、VACUUM FULLの実行がサービス障害につながることもありえる。
-VACUUM FULLが必要とならないよう、普段から適切にVACUUMが実行されるようにAUTO VACUUMのパラメータ調整や、各テーブルのVACUUM実行状況の監視が大切

*ログ [#sb62775e]
-[[VACUUMのログの読み方(VACUUM VERBOSE):https://masahikosawada.github.io/2020/06/01/Reading-Vacuum-Verbose/]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS