Read a query plan as the decision it is, well enough to say why the database chose that join, where its estimate went wrong, and which of the available fixes addresses the actual cause
What the Planner Decides

Between your query and the rows is a program that chose how to get them. This course covers what it is choosing between, how it guesses the cost, why the guess goes wrong, and how to read the plan it produces.
8 lessons, written and corrected before you arrived. Reading them here needs no account. The first reads the whole way through; the others open and then stop, because a page nobody owns cannot tell who is reading it. Starting the course gives you your own copy, where every idea has problems standing under it and you can ask about any sentence.