Episode 4. Indexing. Day 4 of your 12 day sprint. Scenario: "This query got slow as the table grew. Fix it." Open with EXPLAIN ANALYZE, never with a guess. Say: "First I read the plan shape and the buffers line. Then I decide whether the access path or the index is wrong." Say the covering rule: "Index the filter you run. A covering index turns heap fetches into an index-only scan when visibility allows." Say the cost rule: "Every index charges on write and bloats on update. An unused index is pure tax." Lab: take one slow query, capture EXPLAIN ANALYZE before, add or fix one index, capture after. Quote both timings. Trap to rule out: Say: "I ruled out the stale-statistics plan before touching the schema. ANALYZE first, DDL second." Drill: list three index traps from memory: write cost, bloat, unused tax. Say: a covering index earns its keep only when the filter runs hot. Say the buffers line once more: heap fetches avoided is the number I quote. Done-check: recite your before-and-after timings for tonight's query. Depth tag tonight: Debug. You captured both plans yourself. Teaser: tomorrow, Episode 5, the planner. Why good indexes still lose when statistics lie.