Ich bin neu in MySQL, aber ich habe Oracle seit einiger Zeit verwendet. Ich bin etwas verwirrt über MySQL LIMIT
Stichwort. Bedeutet dieses Schlüsselwort, dass die Reihenfolge der zurückgegebenen Daten bei jeder Ausführung der Abfrage gleich ist? Was passiert, wenn den Tabellen, die die Abfrage betreffen, mehr Daten hinzugefügt werden? Und wie würden die Daten bestellt, wenn keine Order-by-Klausel existiert?Hinterfragt das LIMIT-Schlüsselwort die Reihenfolge der zurückgegebenen Daten?
Antwort
Nein, LIMIT
ist nicht deterministisch. Die Reihenfolge hängt von den Daten ab, welche Indizes verwendet werden, interne Änderungen zwischen MySQL-Versionen, Reihenfolge der Daten auf der Festplatte usw.
Normalerweise würden Sie LIMIT
mit einem ORDER BY
kombinieren, um dies zu vermeiden.
Wenn Sie ORDER BY nicht angeben, gibt es keine Garantie dafür, welche Zeilen zuerst zurückgegeben werden.
In der Praxis entspricht die Reihenfolge jedoch normalerweise der Clustered-Index-Reihenfolge und wird zwischen den Aufrufen nicht variieren. Verlassen Sie sich nicht auf dieses Verhalten.
LIMIT wird den zurückgegebenen Daten keine Reihenfolge auferlegen.
Es gibt keine Garantie, dass Limit bei jeder Ausführung die gleiche Reihenfolge zurückgibt, es sei denn, eine ORDER BY-Klausel wird verwendet. Wenn Daten eingefügt werden, kann dies Auswirkungen auf die Ergebnisse der geordneten und ungeordneten Ergebnisse haben.
Wenn Sie eine ORDER BY-Klausel weglassen, liegt es grundsätzlich an der Datenbank, die Reihenfolge zu bestimmen, und sie basiert wahrscheinlich auf der Indexierung der Tabelle. Dies wird sich mit der Zeit ändern, wenn die Tabelle neu indiziert wird und/oder mehr Daten hinzugefügt werden.
- 1. Ist die Reihenfolge der von FOREACH zurückgegebenen Objekte stabil?
- 2. RSpec Reihenfolge der zurückgegebenen Werte UND ausgelöst Fehler aus Stub
- 3. Die Reihenfolge der Daten im Speicher
- 4. MVC2 AJAX - Bestimmung UpdateTargetId auf der Grundlage der zurückgegebenen Daten
- 5. HashSet, das die Reihenfolge beibehält
- 6. Bloodhound.js: Transformieren Sie die von einer Remote-Quelle zurückgegebenen Daten?
- 7. SharePoint UserData und die # Syntax in zurückgegebenen Daten
- 8. jQuery Autocomplete Ajax-Anfrage keine zurückgegebenen Daten
- 9. Sparksql: Json-Array, das die Reihenfolge der Elemente verwaltet
- 10. ggplot2 geom_bar ... wie man die Reihenfolge der Daten hält.frame
- 11. Reihenfolge der Daten, die seit dem 01.01.2015 bis heute beginnen
- 12. Initialisierung Reihenfolge der statischen Daten innerhalb Klassenvorlage
- 13. Wie das Element aus der zurückgegebenen Sammlung von .childNodes Methode
- 14. Was bedeutet das Zeichen '&' im zurückgegebenen Wert?
- 15. Gewährleistet das Sequenzschemaelement die Reihenfolge der untergeordneten Elemente?
- 16. Anzahl der von der Unterabfrage zurückgegebenen Zeilen zusammen mit den von der Unterabfrage zurückgegebenen Spalten
- 17. Die Länge der von CGImageGetDataProvider zurückgegebenen Daten ist größer als erwartet
- 18. Vermeiden Sie die Anzeige der von Spring @ResponseBody zurückgegebenen Daten im Browser
- 19. Google Sheets API v4: Ändern der URL in der get-Anforderung zum Filtern der zurückgegebenen Daten?
- 20. Django: Beschränke die Anzahl der zurückgegebenen ManyToMany-Objekte
- 21. Elasticsearch begrenzen die Anzahl der zurückgegebenen verschachtelten Objekte
- 22. Warum ist die Reihenfolge der Schleifenverschachtelung Python?
- 23. Die Anwendung der Reihenfolge der SVG
- 24. PowerShell konvertiert die von der Funktion zurückgegebenen Werte. Wie vermeide ich das?
- 25. Beschränken Sie die Anzahl der in CloudKit zurückgegebenen Ergebnisse.
- 26. Wie normalisiert man die Reihenfolge der Zahlen?
- 27. jquery update html mit zurückgegebenen mysql Daten nach POST
- 28. Codierung der zurückgegebenen Zeichenfolge von GetUserName()
- 29. MS-Access Calculating Prozentsatz der zurückgegebenen Werte
- 30. Angeben der zurückgegebenen getPaintProperty-Methode Mapbox gl