Van MySQL-documentatie op http://dev.mysql .com/doc/refman/5.6/en/order-by-optimization.html
In sommige gevallen kan MySQL geen indexen gebruiken om de ORDER BY
. op te lossen , hoewel het nog steeds indexen gebruikt om de rijen te vinden die overeenkomen met de WHERE
clausule. Deze gevallen omvatten het volgende:
. . .
De sleutel die wordt gebruikt om de rijen op te halen is niet dezelfde als de sleutel die wordt gebruikt in de ORDER BY
:
`SELECT * FROM t1 WHERE key2=constant ORDER BY key1;`
Dit zal waarschijnlijk niet helpen, maar wat gebeurt er als je AND ID > 0
. toevoegt? naar de WHERE
clausule? Zou dit ertoe leiden dat MySQL de primaire sleutel gebruikt om te sorteren? Het proberen waard denk ik.
(Het lijkt vreemd dat bestellen met ak efficiënt is, aangezien ak niet eens een index heeft, maar dat kan te wijten zijn aan minder waarden voor ak?)