That's bloat. Check first whether autovacuum is keeping up: SELECT relname, n_dead_tup, last_autovacuum FROM pg_stat_user_tables ORDER BY n_dead_tup DESC LIMIT 5; If last_autovacuum is old, look for a long-running transaction, idle in transaction is the usual culprit, it stops dead rows being cleaned. Then lower autovacuum_vacuum_scale_factor on that table. Normal VACUUM frees the space for reuse …