myflames teach

Interactive database algorithm lessons — offline, stdlib-only, each file self-contained.

Start here — recommended order

  1. 01Full table scan — why every row gets read
  2. 02B+tree lookup — how InnoDB finds a row
  3. 03Unique Key Lookup — single-row index lookup
  4. 04Non-Unique Key Lookup — index hits that return many rows
  5. 05Index Condition Pushdown — filtering inside InnoDB
  6. 06Covering index — why "Using index" in EXPLAIN is the goal
  7. 07Nested Loop Join — dedicated operator view
  8. 08Hash join — build, probe, and grace-hash spill
  9. 09Block Nested Loop join — MariaDB's default for non-indexed joins
  10. 10Batched Key Access (BKA) join — batch, sort, MRR
  11. 11Semijoin Duplicate Weedout — dedup via temp table
  12. 12Derived Table Materialization
  13. 13Join-order search — why query planning is factorial
  14. 14InnoDB buffer pool — midpoint-insertion LRU
  15. 15InnoDB buffer pool — cold-start vs warm, dump/load cure

Scan / Sort / Temp Family

Index Access Family

Join Family

Cache / Memory Family

Planner / Optimizer Family