-
Postgres 19 changed five defaults. Your config didn’t notice
Hi there — Welcome to Issue #11 of Vacuum & Analyze. PostgreSQL 19 is planned for general availability on November 19. A second release candidate lands this Thursday, the same day PostgreSQL 14 gets its final release. Last issue I told you not to put 19.0 in production under deadline pressure. That still stands. But… →
-
Postgres 14 dies in 16 days. Your upgrade plan is pg_dump?
Hi there — Welcome to Issue #10 of Vacuum & Analyze. This one runs on a deadline: PostgreSQL 14 gets its final minor release on November 12, 2026. After that, no more fixes. Nothing happens to your database on November 13. It keeps running and serving queries the same way it did the day before.… →
-
Your query plan changed overnight. Nobody deployed anything
Hi there — Welcome to Issue #9 of Vacuum & Analyze. Eight issues in, and we’ve mostly talked about the first half of the name. This one is about the second half: ANALYZE, and the statistics the planner uses to decide how to run your queries. A dashboard query runs in about 40 ms for… →
-
Autovacuum was running. Your table still bloated.
Autovacuum being enabled doesn’t mean it’s keeping up. The default threshold scales with table size, and the fix isn’t the command you’d reach for first. →
-
Your agent needs a vector database.
Your agent needs a vector database. You might already be running one. Every agentic AI architecture diagram has a box labeled “vector store,” usually drawn as a separate system from everything else. For most teams, that box is unnecessary — and the reason why has nothing to do with cost savings. Hi there — Welcome… →
-
Why raising max_connections made everything slower
Hi there — Welcome to Issue #6 of Vacuum & Analyze. New topic, and this one pairs with something I’ve been building on YouTube — a full series on connection pooling that goes deeper with diagrams and live benchmarks than a newsletter issue can. If today’s issue is useful, the video series is the extended… →
-
The update that quietly doubled your write load
Hi there — Welcome to Issue #5 of Vacuum & Analyze. New topic this time, no series to pick up from — just a mechanism that’s easy to benefit from without understanding, and easy to lose without noticing: the HOT update. A table gets thousands of UPDATEs per minute. It’s been running fine for months… →
-
Why your sort spilled to disk — and what to do about it
Hi there — Welcome to issue #2 of Vacuum & Analyze. This is the second piece in a series on PostgreSQL memory. Issue #1 covered shared_buffers and why bumping it to 75% is the wrong instinct. Today: work_mem, and why your sort spilled to disk. A query that normally runs in 200ms suddenly takes 8… →
-
Why adding more shared_buffers doesn’t always help
The first piece in a series on PostgreSQL memory. Why the RAM that looks idle in htop is already working, why bigger shared_buffers stops helping past a point, and the one diagnostic that actually tells you whether you need more. →