PlanetScale

The only scalable delete in Postgres is DROP TABLE

Jun 11, 2026Tom Pang
The only scalable delete in Postgres is DROP TABLE
SummaryAI, from the source post

This post details the performance implications of large `DELETE` operations in PostgreSQL, explaining how MVCC, dead tuples, and replication overhead contribute to performance degradation. It contrasts this with the efficiency of `DROP TABLE` and `TRUNCATE` for bulk data removal, highlighting their immediate space reclamation and lack of dead tuple generation. The post introduces a transactional strategy for one-off large deletes using temporary tables and `TRUNCATE`, and advocates for date-based partitioning to transform ongoing delete workloads into periodic `DROP TABLE` operations on partitions. It also mentions `pg_squeeze` as a tool for tables with existing bloat.

More from the Postgres Core Space Reclamation trail