Da documentação do MySQL em https://dev.mysql .com/doc/refman/5.6/en/order-by-optimization.html
Em alguns casos, o MySQL não pode usar índices para resolver o erro
ORDER BY , embora ainda use índices para encontrar as linhas que correspondem ao WHERE cláusula. Esses casos incluem o seguinte:. . .
A chave usada para buscar as linhas não é a mesma usada no
ORDER BY :`SELECT * FROM t1 WHERE key2=constant ORDER BY key1;`
Isso provavelmente não ajudará, mas o que acontece se você adicionar
AND ID > 0 para WHERE cláusula? Isso faria com que o MySQL usasse a chave primária para classificação? Vale a pena tentar eu suponho. (Parece estranho que ordenar com ak seja eficiente, já que ak nem tem índice, mas isso pode ser devido a menos valores para ak?)