Aus der MySQL-Dokumentation unter http://dev.mysql .com/doc/refman/5.6/en/order-by-optimization.html
In einigen Fällen kann MySQL keine Indizes verwenden, um ORDER BY
aufzulösen , obwohl es immer noch Indizes verwendet, um die Zeilen zu finden, die mit WHERE
übereinstimmen Klausel. Zu diesen Fällen gehören die folgenden:
. . .
Der zum Abrufen der Zeilen verwendete Schlüssel ist nicht derselbe wie der in ORDER BY
verwendete :
`SELECT * FROM t1 WHERE key2=constant ORDER BY key1;`
Dies wird wahrscheinlich nicht helfen, aber was passiert, wenn Sie AND ID > 0
hinzufügen zum WHERE
Klausel? Würde dies dazu führen, dass MySQL den Primärschlüssel zum Sortieren verwendet? Einen Versuch wert, nehme ich an.
(Es scheint seltsam, dass das Sortieren mit ak effizient ist, da ak nicht einmal einen Index hat, aber das kann an weniger Werten für ak liegen?)