Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Warum läuft eine Order By-ID viel langsamer als Order By andere Spalten?

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