TLDR Dev · ARTICLES & TUTORIALS

POSTGRESQL BLOAT IS A FEATURE, NOT A BUG

rogerwelin.github.io14 min read

Summary from the TLDR Dev newsletter

PostgreSQL bloat is a fundamental design feature where databases grow and queries slow down due to the accumulation of old data versions. This occurs because the database's Multi-Version Concurrency Control (MVCC) creates new physical tuples for every update and only marks old ones as obsolete upon deletion, rather than overwriting or erasing them. These "dead tuples" consume disk space, force the system to perform unnecessary I/O by scanning full pages, and contribute to index bloat.