TLDR DevOps · OPINIONS & TUTORIALS

POSTGRESQL'S MVCC IS BAD: SO IS EVERYONE ELSE'S

boringsql.com24 min read

Summary from the TLDR DevOps newsletter

PostgreSQL's MVCC creates write amplification, table bloat, vacuum pressure, and transaction-ID maintenance by storing old row versions in the table, but competing designs merely move those costs elsewhere. Oracle and InnoDB charge writers and historical readers through undo logs, SQL Server pressures its version store, MongoDB consumes cache and history storage, and LSM databases defer cleanup to compaction, making MVCC a choice about who pays rather than a problem any engine has eliminated.