Practice database internals, not just SQL.

A correct query isn’t enough. On ten million rows, the wrong plan never finishes. QueryCrack runs every challenge on real MySQL 8 and grades it on the rows the engine reads. You learn indexes and query plans by hitting them.

Grading reads Handler_read_* session-status deltas from MySQL 8.0: the rows the storage engine actually touched. Never wall-clock time, never the planner estimate. Each challenge ships a fixed schema and indexes; a correct query that reads more rows than the budget gets TIME_LIMIT.

Challenges