Postgres Dead Tuples Not Being Removed: Fixes (2026)
Postgres dead tuples not being removed? VACUUM can only delete rows older than the xmin horizon. Here is how to find what holds it back, and how to fix it.
Postgres dead tuples not being removed? VACUUM can only delete rows older than the xmin horizon. Here is how to find what holds it back, and how to fix it.
Build a Claude agent with long-term memory: Postgres + pgvector store facts, cosine-similarity recall injects them back — verified across a process restart.
Postgres 18 lets MERGE RETURNING return old and new row values in one query. See merge_action(), the xmax alternative, and verified Node.js/TypeScript code.
Tutorial: install pg_partman 5.4.3 + pg_cron on Postgres 18.4, configure daily range partitions with retention, automate maintenance, troubleshoot.
Tune pgvector 0.8.2 HNSW indexes on PostgreSQL 18: ef_search, halfvec quantization, iterative scans, and parallel builds with a runnable Docker setup.
Production pg-boss tutorial. Queue jobs in Postgres from Node.js 24 with TypeScript, retries, dead-letter queues, cron, and graceful shutdown.
Upgrade Postgres 17 to 18.3 with zero downtime using pg_createsubscriber and logical replication. Docker walkthrough with sequences, cutover, rollback.
Hands-on 2026 guide: PgBouncer 1.25.1 in front of Postgres 18, then swap to Supabase Supavisor — transaction pooling, prepared statements, and pitfalls.
Hands-on 2026 tutorial: build a real-time online-presence system on Postgres 18 LISTEN/NOTIFY with Node.js, Express, and ws — no Redis, no broker, just SQL.
SQL from beginner to advanced queries: CRUD, JOINs, subqueries, CTEs, Window Functions, indexes — covering Postgres, MySQL, and SQLite (most examples are portable; vendor-specific differences are noted where they apply).