Es ist viel komplizierter.
Ich verstehe Ihren Standpunkt und ja, ist es selbstverständlich für die zweite Säule zu überprüfen, wenn die erste schon einzigartig ist, sondern auch aus anderer Sicht:
Warum Sie die zweite Spalte enthalten, wenn die erstes ist schon einzigartig?
Wie auch immer, diese Logik funktioniert, wenn wir uns vorstellen, als einfacher Iterationsprozess zu sortieren, aber wie es in 10 beschrieben ist, ist es nicht so.
Probe 1-. . . ORDER BY col1, MAX(col2)
Für diesen Fall, dass Sie GROUP BY
irgendwo in Ihrer SQL und Optimierung Leitfaden verwendet haben, schlägt vor, folgende:
standardmäßig MySQL sortiert alle GROUP BY col1, col2,. .. Abfragen, als ob Sie ORDER BY col1, col2, ... in der Abfrage angegeben. Wenn Sie eine explizite ORDER BY-Klausel enthalten, die die gleiche Spalte enthält Liste, MySQL optimiert es ohne Geschwindigkeitsbegrenzung, obwohl die Sortierung immer noch auftritt.
Probe 2-. . . ORDER BY id, name
als Leitfaden schlägt vor, es hängt alles von den Indizes, die Sie definiert haben:
In einigen Fällen kann MySQL einen Index verwenden, um eine zufrieden zu stellen ORDER BY-Klausel ohne zusätzliche Sortierung. Der Index kann auch verwendet werden, wenn ORDER BY nicht genau mit dem Index übereinstimmt, solange alle nicht verwendeten Teile des Index und alle zusätzlichen ORDER BY-Spalten Konstanten in der WHERE-Klausel sind.
Um sicherzustellen, wie Ihre Abfrage funktioniert, verwenden Sie einfach EXPLAIN SELECT ... ORDER BY
, um zu sehen, wie es verarbeitet wird.