Wenn Sie ORDER BY nicht verwenden, sortieren Sie Ihre Datensätze nicht, so dass Ihre Daten schneller abgerufen werden können. Wenn Sie also einfach LIMIT verwenden, wäre es schneller als die Daten, die über ORDER BY abgerufen werden. Aber beachte, dass in diesem Fall die Daten nicht in einer bestimmten Reihenfolge sind.
Soweit es die Sicherheit betrifft, bin ich nicht sicher, an welche Sicherheit Sie denken, da es in einer Abfrage, die nur LIMIT verwendet und keine ORDER BY-Klausel verwendet, keinen potentiellen Schaden gibt.
Sie können sich auch den Artikel ansehen: ORDER BY ... LIMIT Leistungsoptimierung
Ja, Sie können und ja, es wäre schneller (vorausgesetzt, die Reihenfolge ist Ihnen egal). order by
erfordert das Sortieren. Dies bedeutet, dass die Datenbank mehr Arbeit leisten muss, um das Ergebnis zu erhalten. Am häufigsten wird limit
mit order by
verwendet, da einige Ordnungseinschränkungen auf gesetzt werden sollen, welche 10 Datensätze Sie erhalten (sagen Sie den neuesten, höchsten Rang irgendeiner Art, etc.)
Es hängt davon ab, was Sie für sicher halten - wenn Sie ein konsistentes Ergebnis wünschen (dh das gleiche Ergebnis erhalten, solange sich der Inhalt der Tabelle nicht ändert) oder ein bestimmtes Ergebnis (groß, neu, alt, was auch immer) als dies erfordert Reihenfolge. Wenn Sie sicher sind, dass die Abfrage nicht verknallt wird, und es Ihnen egal ist, welche X-Ergebnisse Sie erhalten, dann ist die Verwendung von Limit in Ordnung (dies wird automatisch von vielen SQL-Tools wie mysql workbench durchgeführt, um die Dinge zu beschleunigen) / p>
Was die Geschwindigkeit anbelangt, so wird es aus zwei Gründen zu einer Verschwendung führen:
limit 10
in großen Tabellen schneller ausgeführt werden als limit 100000
. Wenn Sie die Reihenfolge verwenden, muss der Server alle Ergebnisse durchlaufen, also kann nicht in der Mitte angehalten werden. Also, wenn Sie Limit ohne Reihenfolge verwenden, wird es schneller
Die 3 Antworten sind bisher gut. Aber sie sind nicht völlig richtig.
Im Gegensatz zu den anderen Antworten macht manchmal es aus
ORDER BY
ordnet normalerweise die Ergebnisse an. Wenn also GROUP BY
mit ORDER BY
übereinstimmt, gibt es keinen zusätzlichen Aufwand. GROUP BY
stimmt möglicherweise mit der Abrufreihenfolge überein. Dies ist fast garantiert für InnoDB ohne eine ORDER BY the_primary_key
-Klausel. "Sicher" wird nicht berechnet.