Postgres Weekly
Plus whether Postgres is really 'winning', why indexes don't shrink after VACUUM, and who's inside the elephant costume?

#​673 — November 11, 2026

Web Version

🕒 Fingers crossed, the final release of Postgres 19 lands next week (Thursday, November 19), so we may hold the next issue back a day or two to cover it properly. If next week's newsletter arrives a little later than usual, that's why. :-)
__
Your editor, Peter Cooper

Together with  Tiger Data logo

Postgres Weekly

UUIDv4 vs UUIDv7: What a Random Primary Key Costs — The difference is minimal if the index fits in memory, but grows rapidly as it outgrows the cache! In a memory-constrained benchmark, UUIDv4 inserts ran at two-thirds the rate of an ordered key and generated more WAL. Nikolay explains why and shares some catches in switching to uuidv7().

Nikolay Samokhvalov (PostgresAI)

Your Retention Job Shouldn’t Be a Four-Hour DELETE — Purging old rows with DELETE bloats the table, hammers WAL, and leaves VACUUM behind. TimescaleDB partitions by time, so retention drops whole chunks in milliseconds. Same Postgres, same SQL. Start on Tiger Cloud with a $1000 credit.

Tiger Data (creators of TimescaleDB) sponsor

Is Postgres Really Winning? — Postgres is the only top four database gaining ground in the DB-Engines rankings and might pass SQL Server soon, but it measures 'popularity', not production use. In part two, Dave looks further afield, at developer surveys, acquisitions, and what AI tools reach for by default. In short, things continue to look bright for Postgres.

Dave Stokes

IN BRIEF:

  • ⏰ Postgres's quarterly minor releases are due tomorrow, alongside Postgres 19 RC2. The draft announcement lists 140+ fixes and some post-update reindexing steps. Note that 14.25 will be Postgres 14's final release.

  • Xata is joining ClickHouse, whose Managed Postgres service went GA the same day. Meanwhile, EDB has acquired Altinity, a major ClickHouse contributor.

  • Google has unveiled AlloyDB Express, a scale-to-zero tier of its Postgres-compatible database that spins up in seconds and is aimed at prototyping and coding agents. It's in preview, with a free tier.

  • 🗓️ Tomorrow (November 12, 5pm GMT), there's a free Postgres Meetup for All online meetup where Adyen's Huseyin Demir will share what went right and wrong upgrading a huge Postgres fleet to v18 with logical replication.

  • 🇧🇪 The Postgres devroom at FOSDEM 2027 takes place on January 30 in Brussels. The CFP is open until November 28.

Why VACUUM Doesn't Shrink Your Postgres Indexes — A page-by-page look, using pageinspect, at why VACUUM thins out B-tree index pages but can't shrink the index, and why sequential keys don't refill the gaps. There's also an interactive visualizer to try it on a tiny tree yourself.

Radim Marek

An Index Scan Is Only Half the Story: How On-Disk Ordering Affects Performance — A look at why an identical index scan can become far slower after a migration involving a parallel data load. Richard shares a ctid query to help detect the problem.

Richard Yen

What Postgres is Waiting For (and Why Dashboards Can't Tell You) — Wait event dashboards work by sampling, so they can be right about where time goes overall, yet wrong about why one request is slow.

Dmitry Fomin (PostgresAI)

📄 A Database Per Git Worktree That Barely Uses Any Disk Space – Using Postgres 18's file_copy_method = clone on a copy-on-write filesystem like APFS or Btrfs. Dennis Paagman

📄 Our 'Default' postgresql.conf, Step by Step – The baseline Data Egret usually starts with when setting up or taking over a cluster, beginning with connection settings. Ilya Kosmodemiansky (Data Egret)

📊 Thirteen Small Measurements on Postgres 18 – Such as an unindexed foreign key turning a 13ms cascading delete into a 3.6 second one. Hollis Varden

📊 json vs jsonb: Size and Speed, Measured Chris van Eijk

RELEASES AND CODE:

  • PG Observability Map – An interactive map of Postgres's architecture (see above) where you can hover over a component to see which stats views and functions cover it. Inspired by Alexey Lesovsky's pgstats.dev diagram (which seems to be down).

  • Supavisor 2.10 – Supabase's multi-tenant Postgres connection pooler adds a setting to log or reject session-level SET, LISTEN, advisory locks and temp tables in transaction mode.

  • PgQueuer 2.0 – A Postgres-backed job queue for Python, built on LISTEN/NOTIFY and FOR UPDATE SKIP LOCKED. (Docs.)

  • 🔒 pgx 5.12 – The popular Postgres driver for Go fixes SQL injection in certain simple-protocol batches and a server-authentication bypass affecting some connection settings.

  • pgstream 1.6 – Xata's replication and CDC tool fixes a bug where a restart could skip committed transactions.

📰 Classifieds

🔍 A read-only agent for slow Postgres queries. Faster queries without manual triage, bigger instances, or extra replicas. Free & open source.


WarpBuild infrastructure runs GitHub Actions twice as fast at half the cost. Get $50 in free credits with code START50.


⚡ Rebase is an open-source backend for Postgres: REST, auth, realtime and storage, with your access rules enforced by Postgres RLS.

AND FINALLY: WHO'S INSIDE THE ELEPHANT?

Don't Dream It, Be It! — Slonik, Postgres's mascot, turns up at many Postgres events, but who's in the suit? At last month's PGConf.EU it was Laurenz Albe, who reports that it's hot, you can't see your feet, but everybody wants a photo. His advice to first-time attendees who don't know anyone is… volunteer!

Laurenz Albe (CYBERTEC)

Issue 672 #673