article_idがarticleテーブルの主キーのようです。
article_idでグループ化しているため、MySQLは、GROUP BYを実行するために、その列の順にレコードを返す必要があります。
インデックスがないと、記事テーブル内のすべてのレコードがスキャンされますが、少なくともarticle_idの順序であるため、後で並べ替える必要はありません。 LIMIT最適化はここで適用できます。これはすでに順序付けられているため、5行を取得した直後に停止できます。
tag.nameにインデックスがあるクエリでは、articlesテーブル全体をスキャンする代わりに、インデックスを利用しますが、タグテーブルに対して開始します。残念ながら、これを行う場合、GROUP BY句を完了するには、後でレコードをarticle.article_idで並べ替える必要があります。 LIMIT最適化は、最初の5行を取得するために、結果セット全体を返し、それを並べ替える必要があるため、適用できません。
この場合、MySQLは誤って推測します。
LIMIT句がないと、インデックスの使用が高速になると推測しています。これは、MySQLが推測していたことかもしれません。