How did VACUUM ANALYZE reclaim large TOAST bloat at disk level in PostgreSQL 16? - Mailing list pgsql-general

From pramod gupta
Subject How did VACUUM ANALYZE reclaim large TOAST bloat at disk level in PostgreSQL 16?
Date
Msg-id CAMxxg=a0PCvrSenxkTSjTsBygh5KJ-bqOo2ZqJvGcsjdiECOWg@mail.gmail.com
Whole thread Raw
Responses Re: How did VACUUM ANALYZE reclaim large TOAST bloat at disk level in PostgreSQL 16?
Re: How did VACUUM ANALYZE reclaim large TOAST bloat at disk level in PostgreSQL 16?
List pgsql-general
Hello Everyone,

We have a table with a total size of ~628 GB, out of which ~601 GB was TOAST data.
After running VACUUM ANALYZE on a weekly basis, the table size reduced significantly to ~109 GB, indicating a large amount of bloat removal.

I would like to understand:

How was VACUUM ANALYZE able to reclaim such a large amount of space, especially for TOAST data?

Under what conditions does PostgreSQL reclaim disk space without requiring VACUUM FULL or CLUSTER?

Is this behavior expected in PostgreSQL 16, particularly for heavily updated or deleted TOASTed columns?

Any insights or documentation references would be greatly appreciated.

PostgreSQL version: 16

Thanks in advance.
Pramod Gupta

pgsql-general by date:

Previous
From: hubert depesz lubaczewski
Date:
Subject: Re: psql: print values and return the COUNT(*) value to bash?
Next
From: Ron Johnson
Date:
Subject: Re: How did VACUUM ANALYZE reclaim large TOAST bloat at disk level in PostgreSQL 16?