От документацията на MySQL на адрес http://dev.mysql .com/doc/refman/5.6/en/order-by-optimization.html
В някои случаи MySQL не може да използва индекси за разрешаване на ORDER BY
, въпреки че все още използва индекси, за да намери редовете, които съответстват на WHERE
клауза. Тези случаи включват следното:
. . .
Ключът, използван за извличане на редовете, не е същият като този, използван в ORDER BY
:
`SELECT * FROM t1 WHERE key2=constant ORDER BY key1;`
Това вероятно няма да помогне, но какво ще стане, ако добавите AND ID > 0
към WHERE
клауза? Това би ли накарало MySQL да използва първичния ключ за сортиране? Предполагам, че си струва да опитате.
(Изглежда странно, че подреждането с ak е ефективно, тъй като ak дори няма индекс, но това може да се дължи на по-малко стойности за ak?)