MySQL, from the query down to the disk.
The SQL course teaches the language. This one teaches the machine: what the MySQL server does with your query, how InnoDB stores a row, why the primary key choice decides your performance, how readers avoid blocking writers — and how to run it without losing data.
The one picture this course is built on
Every MySQL query crosses two very different layers. Knowing which layer a problem lives in is most of the skill of running MySQL.
You should be comfortable with SELECT, joins and GROUP BY before starting.
If you are not, do SQL lessons 01–09 first. The two courses share the same retail database so you can
move between them freely.
Pick a path
My queries are slow
Lessons 06, 10, 11, 12, 13, 14. Clustered index, index design and EXPLAIN — most real wins live here.
I get deadlocks and lock waits
Lessons 07, 08, 09. MVCC and InnoDB's locking model, then how to read a deadlock report.
I have to run it in production
Lessons 03, 17, 18, 19, 20, 21. Configuration, backups you have tested, replication, monitoring, security.
I want to really know MySQL
Start at lesson 01 and go in order, then do the project.
Ships with a hands-on project
🛠 Make a slow database fast — then break it and recover it
Load the retail schema scaled to ~200k rows into MySQL 8 in Docker. Measure a set of slow queries
with EXPLAIN ANALYZE, design indexes and prove the speedup, reproduce a deadlock with two
sessions, then take a backup, "lose" data, and do a point-in-time restore from the binary log.
The curriculum
Everything targets MySQL 8.0 / 8.4 LTS with InnoDB. Where MariaDB or MySQL 5.7 behave differently in ways that matter, the lesson says so.