Det ser ud til, at artikel_id er den primære nøgle til artikeltabellen.
Da du grupperer efter article_id, skal MySQL returnere posterne i rækkefølge efter den kolonne for at udføre GROUP BY.
Du kan se, at uden indekset scanner den alle poster i artikeltabellen, men de er i det mindste i rækkefølge efter artikel_id, så der kræves ingen senere sortering. LIMIT-optimeringen kan anvendes her, da den allerede er i orden, den kan bare stoppe, når den har fået fem rækker.
I forespørgslen med indekset på tag.name, i stedet for at scanne hele artiklertabellen, bruger den indekset, men mod tag-tabellen, og starter der. Desværre, når du gør dette, skal posterne senere sorteres efter article.article_id for at fuldføre GROUP BY-klausulen. LIMIT-optimeringen kan ikke anvendes, da den skal returnere hele resultatsættet og derefter bestille det for at få de første 5 rækker.
I dette tilfælde gætter MySQL bare forkert.
Uden LIMIT-klausulen gætter jeg på, at brugen af indekset er hurtigere, hvilket måske var, hvad MySQL gættede på.