PostgreSQL 15 shipped in October 2022. Six months after upgrading our larger projects, we can call what was worth it and what was not.
Life-changers
The MERGE statement killed ten lines of SQL on every upsert. In sync jobs with external systems — ERPs, customer records, price lists — the code is cleaner and the intent obvious.
In-memory sort performance improved by up to 25% on our real workloads. For admin dashboards with paginated lists and order-by on unindexed columns, the win is visible without measuring.
Logical replication now supports row and column filters. For multi-tenant setups where you want to replicate only some rows to a secondary site, it changes the mindset.
Not yet in production
WAL LZ4 compression needs deeper testing on backups and physical replicas. We are sticking with zlib for now.
Extended statistics on expressions are powerful but unintuitive. They should be used only when the planner makes wrong choices, which is rare on our projects.
Bottom line
The upgrade is worth it from 13 or 14. MERGE alone pays back the migration work. Below 13 the move is mandatory: 12 is EOL and 13 will be soon.