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 is co-founder and CTO of VividCortex, a provider of SaaS database administration tools. He is the lead author of High Performance MySQL and continues to research and publish under the O’Reilly imprint. He has created several open-source software tools, including Maatkit, and has authored features for MySQL and InnoDB. He is an Oracle ACE, and the founder of the worldwide OpenSQL Camp conference series. He holds a degree in Computer Science from the University of Virginia. Baron lives in Charlottesville, Virginia with his family.
View a complete list of MySQL contacts.