A lot has happened in MySQL 5.6 for queries joining many tables.
For the most common use cases we have drastically reduced the
cost of finding the execution plan. We have also improved the
heuristics and removed bugs so that the final plan is often
better than it used to be. Read on if you are one of those people
who do 15 way joins!

Finding a query execution plan
First some background. You can skip this part if you know how
MySQL picks the table join order in 5.5.

When presented with a query, MySQL will try to find the best
order to join tables by employing a greedy search algorithm. The
outcome is what we call a query execution plan, QEP. When you
join just a few tables, there's no problem calculating the cost
of all join order combinations and then pick the best plan.
However, since there are (#tables)! possible combinations, the
cost of calculating them all soon becomes too high: for five
tables, e.g., …

Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion
of Oracle or any other party.