Heim > Datenbank > MySQL-Tutorial > Wie hat sich die Handhabung von ORDER BY in Unterabfragen durch MariaDB geändert und welche Lösung wird empfohlen?

Wie hat sich die Handhabung von ORDER BY in Unterabfragen durch MariaDB geändert und welche Lösung wird empfohlen?

Linda Hamilton
Freigeben: 2024-12-31 15:38:16
Original
736 Leute haben es durchsucht

How Has MariaDB's Handling of ORDER BY in Subqueries Changed, and What's the Recommended Solution?

Änderung der MySQL/MariaDB-Abfrageoptimierung: Sortieren nach in Unterabfragen

Bei Abfragen mit MySQL 5.5 oder früher wurde die ORDER BY-Klausel einer Unterabfrage angewendet vor dem SELECT der äußersten Abfrage. In MariaDB 10.0.14 hat sich dieses Verhalten jedoch geändert, und ORDER BY-Klauseln für Unterabfragen werden jetzt ignoriert, wenn kein LIMIT vorhanden ist.

Um dieses Problem zu beheben, empfiehlt MariaDB, die ORDER BY-Klausel auf die äußerste Abfrage anzuwenden oder zu verwenden LIMIT in der Unterabfrage.

Dokumentiert Verhalten

In der Dokumentation von MariaDB heißt es, dass Unterabfragen in der FROM-Klausel ungeordnete Sätze von Zeilen sind und ORDER BY-Klauseln in diesem Zusammenhang im Allgemeinen ignoriert werden. Das folgende Zitat aus der Dokumentation liefert weitere Einzelheiten:

„Eine „Tabelle“ (und auch eine Unterabfrage in der FROM-Klausel) ist – gemäß dem SQL-Standard – eine ungeordnete Menge von Zeilen. Zeilen in einer Tabelle (bzw in einer Unterabfrage in der FROM-Klausel) kommen in keiner bestimmten Reihenfolge vor. Deshalb kann der Optimierer die von Ihnen angegebene ORDER BY-Klausel ignorieren. Tatsächlich lässt der SQL-Standard nicht einmal zu, dass die ORDER BY-Klausel erscheint diese Unterabfrage (wir erlauben es, weil ORDER BY ... LIMIT ... das Ergebnis, die Menge der Zeilen und nicht nur ihre Reihenfolge ändert)."

Daher wird empfohlen, Unterabfragen als ungeordnete Mengen zu behandeln und um ORDER BY-Klauseln in den äußersten Abfragen zu platzieren oder bei Bedarf LIMIT zu verwenden.

Das obige ist der detaillierte Inhalt vonWie hat sich die Handhabung von ORDER BY in Unterabfragen durch MariaDB geändert und welche Lösung wird empfohlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage