ええと、ドキュメント 「一時的な使用」が表示される正確な理由を示します:
一時テーブルは、次のような条件下で作成できます。
ORDERBY句と別のGROUPBY句がある場合、またはORDERBYまたはGROUPBYに参加キューの最初のテーブル以外のテーブルの列が含まれている場合は、一時テーブルが作成されます。
DISTINCTとORDERBYを組み合わせると、一時テーブルが必要になる場合があります。
SQL_SMALL_RESULTオプションを使用する場合、クエリにディスク上のストレージを必要とする要素(後で説明)も含まれていない限り、MySQLはメモリ内の一時テーブルを使用します。
クイックスキャンは、あなたが#1に苦しんでいることを示しています。
そして、このブログ 2009年以降、「filesortを使用する」とは、インデックスを使用して並べ替えを実行できないことを意味します。計算フィールドで並べ替えているので、それも当てはまります。
だから、それが「間違っている」のです。