20064

2024-10-09 Sent

株式会社ヘルスベイシス 鈴木 様

お世話になっております、G-gen サポートの松本です。 ご案内にお時間いただいており恐れ入ります。保留となっておりました件について下記にご案内いたします。

ただストレージ容量が増えてしまう件については根本的な要因が不明なのですが、 こちらについては何かわかりますでしょうか?

上記の要因につきましては、DELETE 文によるデータ削除を行った際に発生するログが「WAL (Write-Ahead Logging の略、直訳すると「ログ先行書き込み」という意味)」の設定により残っているためと推察いたしました。

WAL についての詳細な解説は PostgreSQL 公式ドキュメント[1, 2]の添付を以って割愛させていただきますが、簡単に申し上げますと「データの整合性を確保するために、データの変更を実際にディスクに書き込む前にログに記録する仕組み」となっております。 上記により発生しているログが以前ご案内した VACUUM [3, 4], autovacuum [5, 6] により削除されるまで残っている挙動ではないかと存じます。

[1] 30.2. ログ先行書き込み(WAL) (PostgreSQL 9.6.5文書 日本語版) https://www.postgresql.jp/document/9.6/html/wal-intro.html

[2] 30.2. Write-Ahead Logging (WAL) (PostgreSQL 9.6.24 Documentation 英語・原版) https://www.postgresql.org/docs/9.6/wal-intro.html

[3] VACUUM (PostgreSQL 9.6.5文書 日本語版) https://www.postgresql.jp/document/9.6/html/sql-vacuum.html

[4] VACUUM (PostgreSQL 9.6.24 Documentation 英語・原版) https://www.postgresql.org/docs/9.6/sql-vacuum.html

[5] 19.10. 自動Vacuum作業 (PostgreSQL 9.6.5文書 日本語版) https://www.postgresql.jp/document/9.6/html/runtime-config-autovacuum.html

[6] 19.10. Automatic Vacuuming (PostgreSQL 9.6.24 Documentation 英語・原版) https://www.postgresql.jp/document/9.6/html/runtime-config-autovacuum.html

認識の相違ある場合や不明点などありましたらお知らせくださいませ。 ご確認のほどよろしくお願いいたします。