概要

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

AUTO VACUUM機能

  • PostgreSQLには「AUTO VACUUM」機能が搭載されており、自動で随時VACUUMが実行されるため、多くの場合問題とならない
  • テーブルによって追加・更新・削除の頻度、規模は様々であるため、AUTO VACUUM機能によるVACUUM実行のタイミングが適切でないケースが出てくる
  • auto vacuum処理では、同時に統計情報の更新も行ってくれる
  • 別途 analyze コマンドも用意されているが、自動処理に任せてしまうのが推奨とのこと

VACUUMに関する注意点

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

ログ


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-05-17 (月) 11:25:36 (1075d)