Table 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:

  1. Retention policies

Components it hits#

Database