ドキュメントによると、postgresql で行を削除した後、行はデッド状態のままになるため、このスペースを再利用するために定期的に掃除機をかける必要があります。これは、テーブルから列を削除するときの行幅にも適用されますか?それとも、そのスペースは永久に割り当てられますか?
1 に答える
1
答えはイエスです。スペースは再利用されます。
(太字強調鉱山)に関するドキュメントから:VACUUM
テーブルの新しいコピーを書き込み、操作が完了するまで古いコピーを解放しません
そして、についてのページのメモからALTER TABLE
:
ドロップされた列によって占められていたスペースの即時再利用を強制するには、テーブル全体の再書き込みを実行する ALTER TABLE のいずれかの形式を実行できます。これにより、削除された列が null 値に置き換えられて各行が再構築されます。
そしてもう1つ:
パラメータによっては、目的の効果を得るためにテーブルを書き直す必要がある場合があります。これは、 VACUUM FULL、 CLUSTER 、またはテーブルの書き換えを強制する ALTER TABLE のいずれかの形式で実行できます。
于 2016-08-22T15:32:38.933 に答える