---
title: "What a random primary key costs in Postgres"
publication: "Postgres Weekly"
issue: 673
published_at: "2026-11-11"
canonical_url: "https://postgresweekly.com/issues/673"
---

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](https://postgresweekly.com/issues/673)   

🕒 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\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_1280,h_282/e_make_transparent/co_white,e_outline:30/px1u7kjyvz7xnbm6ytir.png)](https://www.tigerdata.com/go/trial?utm_source=content-syndication&utm_medium=referral&utm_campaign=postgres-weekly-newsletter)   

Postgres Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ud1tdm04gaspuqkijouh.jpg)](https://postgres.ai/blog/20261105-uuidv4-vs-uuidv7)  

[UUIDv4 vs UUIDv7: What a Random Primary Key Costs](https://postgres.ai/blog/20261105-uuidv4-vs-uuidv7) — 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)   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/36027d94.png)](https://www.tigerdata.com/go/trial?utm_source=content-syndication&utm_medium=referral&utm_campaign=postgres-weekly-newsletter) 

[Your Retention Job Shouldn’t Be a Four-Hour DELETE](https://www.tigerdata.com/go/trial?utm_source=content-syndication&utm_medium=referral&utm_campaign=postgres-weekly-newsletter) — 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](https://www.tigerdata.com/go/trial?utm_source=content-syndication&utm_medium=referral&utm_campaign=postgres-weekly-newsletter). 

Tiger Data (creators of TimescaleDB) sponsor   

[Is Postgres Really Winning?](https://stokerpostgresql.blogspot.com/2026/11/is-postgresql-really-winning.html) — Postgres is the only top four database gaining ground in [the DB-Engines rankings](https://db-engines.com/en/ranking/relational+dbms) and might pass SQL Server soon, but it measures 'popularity', not production use. In [part two](https://stokerpostgresql.blogspot.com/2026/11/is-postgresql-really-winning-part-2.html), 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](https://www.postgresql.org/message-id/attachment/208544/20261112updaterelease.md) lists 140+ fixes and some post-update reindexing steps. Note that 14.25 will be Postgres 14's final release.
- [Xata is joining ClickHouse](https://xata.io/blog/xata-is-joining-clickhouse), whose Managed Postgres service [went GA](https://clickhouse.com/blog/managed-postgres-ga-xata-acquisition) the same day. Meanwhile, [EDB has acquired Altinity](https://www.enterprisedb.com/press-releases/edb-acquires-altinity-bring-together-two-leading-open-source-databases-advancing-its), a major ClickHouse contributor.
- Google has unveiled [AlloyDB Express](https://cloud.google.com/blog/products/databases/introducing-alloydb-express-for-rapid-testing-and-prototyping), 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](https://www.meetup.com/postgres-meetup-for-all/events/316580949/) 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](https://www.postgresql.eu/events/fosdem2027/news/fosdem-pgday-2027-postgresql-devroom-submit-your-talk-proposal-223/) takes place on January 30 in Brussels. The CFP is open until November 28.   

[Why `VACUUM` Doesn't Shrink Your Postgres Indexes](https://boringsql.com/posts/index-storage-and-bloat/) — 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](https://boringsql.com/visualizers/btree-index/) to try it on a tiny tree yourself. 

Radim Marek   

[An Index Scan Is Only Half the Story: How On-Disk Ordering Affects Performance](https://richyen.com/postgres/2026/11/09/index_scan_scattered_heap.html) — 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)](https://postgres.ai/blog/20261103-what-postgres-is-waiting-for) — 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](https://paagman.dev/postgres-18-database-per-worktree/) – 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](https://dataegret.com/2026/11/default-postgresql-conf-part-1-connection-settings/) – 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](https://explainmeasured.com/posts/thirteen-measurements-pg18/) – 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](https://now-next.nl/en/insights/postgresql-json-vs-jsonb-measured/) Chris van Eijk    

**RELEASES AND CODE:**  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/gsdwwaye2plumcpa5nd4.jpg)](https://meob.github.io/pg-observability-map/)  

- [PG Observability Map](https://meob.github.io/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](https://pgstats.dev/) diagram (which seems to be down).
- [Supavisor 2.10](https://github.com/supabase/supavisor/releases/tag/v2.10.0) – 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](https://github.com/janbjorge/pgqueuer/releases/tag/v2.0.0) – A Postgres-backed job queue for Python, built on `LISTEN/NOTIFY` and `FOR UPDATE SKIP LOCKED`. ([Docs](https://janbjorge.github.io/pgqueuer/).)
- 🔒 [pgx 5.12](https://github.com/jackc/pgx/blob/master/CHANGELOG.md#5120-october-30-2026) – 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](https://github.com/xataio/pgstream/releases/tag/v1.6.0) – 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](https://readyset.io/downloads?utm_source=postgresweekly&utm_medium=newsletter&utm_campaign=postgresweekly_sponsorship&utm_content=2026-11-11). Faster queries without manual triage, bigger instances, or extra replicas. [Free & open source](https://readyset.io/downloads?utm_source=postgresweekly&utm_medium=newsletter&utm_campaign=postgresweekly_sponsorship&utm_content=2026-11-11). 

--- 

[WarpBuild](https://www.warpbuild.com/start?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=h2-2026&utm_content=postgresweekly-2026-11-11) infrastructure runs GitHub Actions twice as fast at half the cost. [Get $50 in free credits](https://www.warpbuild.com/start?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=h2-2026&utm_content=postgresweekly-2026-11-11) with code`START50`. 

--- 

⚡ [Rebase](https://rebase.pro/?utm_source=postgresweekly&utm_medium=newsletter&utm_campaign=2026-11-11%20) 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?**  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/v7qrulepbkg56zf6otkl.jpg)](https://www.cybertec-postgresql.com/en/slonik-dont-dream-it-be-it/)  

[Don't Dream It, Be It!](https://www.cybertec-postgresql.com/en/slonik-dont-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)    

**Got a new email?** You can [change your address here](https://postgresweekly.com/edit_subscription/*|UID|*). 

--- 

**Bored of us?** [Click here to stop getting Postgres Weekly](https://postgresweekly.com/leave/*|UID|*). 

--- 

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. _Thanks!_ 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

Postgres, PostgreSQL and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada. 

[Stop getting this newsletter](https://postgresweekly.com/leave/*|UID|*).
