Course
PostgreSQL in Practice
Postgres the way it behaves in production — MVCC and the WAL, indexes that actually get used, EXPLAIN fluency, transactions that don't corrupt data, and the operational habits that keep a database boring.
How Postgres Works
MVCC, WAL, and the storage model that explains every surprising behavior.
- 01MVCC and the WAL: Why Postgres Behaves the Way It DoesMulti-version concurrency control and the write-ahead log — the two mechanisms that explain dead tuples, vacuum, and Postgres's durability guarantees.22mOpen
- 02Transactions and Isolation: Reading Nothing WeirdThe isolation levels Postgres actually offers, the anomalies each prevents, and when to use SELECT FOR UPDATE, serializable, or advisory locks.22mOpen
Performance
Indexes, query plans, and writing queries the planner can optimize.
- 01Indexes That Actually Get UsedB-tree, GIN, GiST, partial and covering indexes — how the planner decides, and why most 'add an index' advice is written by people who never ran EXPLAIN.22mOpen
- 02EXPLAIN Fluency: Reading Query PlansEXPLAIN ANALYZE in five minutes — scan types, join strategies, and the three signals that tell you a query is about to be a problem.20mOpen
- 03Writing Queries the Planner Can OptimizeSARGable predicates, avoiding functions on columns, pagination that scales, and the query shapes that defeat the optimizer.20mOpen
Operations
Constraints, migrations, partitioning, and backup discipline.
- 01Constraints Are Your Application's SpineThe database is the last line of correctness — check constraints, foreign keys, exclusion constraints, and generated columns encode invariants no application bug can break.18mOpen
- 02Zero-Downtime MigrationsColumn adds are free; rewrites are not. The expand-contract pattern, concurrent index builds, and the migration habits that don't take the table lock at 3pm.20mOpen
- 03Partitioning and Managing Big TablesWhen tables get big, one table stops being one thing — range partitioning by time, declarative partitioning syntax, and the maintenance wins.18mOpen
- 04Backups, Replicas, and the Settings That Matterpg_dump vs PITR, streaming replication, and the five config knobs that determine whether your database survives the next incident.18mOpen