11
Bloating
Vacuuming does not reduce the size of tables and indexes
the “holes” in the pages are used for new data, 
but never returned to the operating system
Causes of bloating
incorrect autovacuum configuration
massive changes of data
long-running transactions
Negative consequences
inefficient disk space use
slower sequential table scan
less efficient index access
Vacuuming cleans out outdated row versions from pages. This creates spots 
of free space in the pages, which is then used to store new data. But the 
free space is not returned to the operating system, so, from the point of view 
of the OS, the size of the data files does not decrease.
In the case of indexes (B-trees), it is complicated by the fact that if there is 
not enough space in the page to place an index entry, the page is split into 
two. The resulting pages are never merged again, even if all index entries 
are removed from them.
If autovacuuming is configured correctly, the data files grow by a certain 
constant amount due to updates between vacuumings. But if a large amount 
of data is being changed at the same time, or there are active long 
transactions (keeping old data snapshots active and not allowing you to 
vacuum out old row versions), vacuuming will not be able to free up the 
space in time. As a result, the tables and indexes may continue to grow in 
size.
File size bloating leads not only to disk space overuse (including for 
backups), but also to a decrease in performance.