sql >> Database >  >> RDS >> Mysql

MySQL:Waarom werkt een Order By ID veel langzamer dan Order By andere kolommen?

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?)



  1. Hoe kleine letters naar hoofdletters te converteren in MySQL

  2. MySQL Update meerdere rijen in een enkele kolom op basis van waarden uit diezelfde kolom

  3. Hulp nodig bij het bouwen van sql-query met join en waar op veel-op-veel-relatie

  4. Hoe maak je een schema in Oracle met SQL Developer?