ReferenceIncidents
Era 3 · Series ATable bloat
PostgreSQL keeps the old version of every updated row until VACUUM cleans it. Heavy updates outran the cleaning, and the table filled with dead rows: every read and write costs more CPU.
What happens#
PostgreSQL keeps the old version of every updated row until VACUUM cleans it. Heavy updates outran the cleaning, and the table filled with dead rows: every read and write costs more CPU.
How to prevent it#
A retention window keeps the tables small, and a MySQL engine has no dead rows to clean.
The postmortem opens the first of these that you do not own yet: