EXPLAIN was created by and for the MySQL developers, and then offered to the rest of the world with little information on how to interpret it. Simple queries are easy to understand, but queries with filesorts, subqueries, and UNIONs become dizzyingly complicated to unravel. There are a lot of undocumented rules about how EXPLAIN shows its output, too.
I learned EXPLAIN by studying source code, documentation, and learning from the query optimizer team. I verified everything I learned with complex test cases. Along the way I discovered how to reverse-engineer EXPLAIN into a query execution plan. Finally, I wrote a program to do this, the first of its kind.
In this session I’ll teach EXPLAIN from the ground up:
I will (briefly!) demonstrate the visual explain tool I wrote, but I’ll focus on understanding EXPLAIN without tools. This session will give you a deeper understanding of what your queries are really doing.
Baron Schwartz is founder and CEO of VividCortex, the best way to see what your production database servers are doing. He is the lead author of High Performance MySQL and a variety of open-source software.
View a complete list of MySQL contacts.