Was ist Ihrer Meinung nach in einem PHP-Skript schneller?
%Vor%oder
%Vor%Was glaubst du ist schneller in einem PHP-Skript:
Das ORDER BY
wird nicht im PHP-Skript ausgeführt - es wird in der Datenbank ausgeführt, bevor Daten vom PHP-Skript abgerufen werden. Entschuldigung, wenn das pedantisch erscheint, ich möchte nur sicherstellen, dass Sie das verstehen.
Der Grund, warum ich ORDER BY
verwenden würde, ist, dass die Datenbank Zugriff auf Indizes und zwischengespeicherte Seiten aus der Datenbank hat. Die Sortierung in PHP sortiert natürlich den Datensatz im Speicher, hat aber keinen Zugriff auf einen Index.
Wenn das geordnete Feld indiziert ist, würde ich wahrscheinlich die SQL-Abfrage sagen. Wenn nicht, bin ich mir nicht sicher, aber ich kann mir nicht vorstellen, dass es auf irgendeine Weise übermäßig auffällt, es sei denn, Sie haben es mit einer absurd großen Anzahl von Zeilen zu tun.
Wenn die erste Abfrage ein LIMIT enthält und die Menge der Zeilen, die die Abfrage erfüllen würde, ohne dass das LIMIT viel größer ist als das LIMIT, ist ORDER BY in der Abfrage DEFINITIV schneller.
Das heißt, wenn Sie die obersten 50 Zeilen aus einer Tabelle mit 10.000 Zeilen benötigen, ist es viel schneller, die Datenbank nach Ihnen zu sortieren und nur die obersten 50 Zeilen zurückzugeben, als alle 10.000 Zeilen abzurufen und zu sortieren Sie selbst in PHP. Dies ist wahrscheinlich repräsentativ für die große Mehrheit dessen, was in realen Anwendungen passieren wird.
Wenn es überhaupt Fälle gibt, in denen die Sortierung in PHP sogar vergleichbar ist, sind sie selten.
Außerdem ist die SQL-Sortierung viel leistungsfähiger - es ist trivial, nach mehreren Spalten, Unterabfragen, den Rückgabewerten von Aggregatfunktionen usw. zu sortieren.