web-dev-qa-db-ja.com

列を削除した後、PostgreSQLテーブルのサイズを縮小するにはどうすればよいですか?

PostgreSQLデータベースがあります。 1つのテーブルは非常に大きいです。 TEXT列を別のテーブルに抽出し、サイズをどの程度削減できるかを確認したいと思います。問題は、私が何をしてもサイズが変わらないように見えることです。

Psqlで\dt+を発行してサイズを取得しています。

VACUUM FULLdp_dumpallを試してから、データベースを削除して復元しました。

テーブルのサイズは変更されませんでした。

2番目のTEXT列を追加し、サイズが数百MB増加するのを監視し、列を削除しましたが、サイズを再び下げることができません。

これらの列を削除した後、テーブルのサイズを小さくするにはどうすればよいですか?

1
Jon S.

TEXT型の列は、テーブルデータと共に格納されていません。 PostgreSQLはそれらをblobのように扱い、トーストテーブルを使用して実際のデータを格納します。おそらくそれが、テーブルサイズの縮小が見られない理由です。

1
Pivobispo