PHP / SQL: ORDER BY oder sort ($ array)?

7

Was ist Ihrer Meinung nach in einem PHP-Skript schneller?

%Vor%

oder

%Vor%     
Paul Woolcock 17.03.2009, 17:21
quelle

6 Antworten

13

Es hängt von so vielen Faktoren ab, dass ich nicht einmal weiß, womit ich anfangen soll.

Aber in der Regel führen Sie die Sortierung auf Datenbankseite durch.

Indizes, Sortierungen und all das, sie helfen.

    
Quassnoi 17.03.2009, 17:24
quelle
4
  

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.

    
Bill Karwin 17.03.2009 17:37
quelle
2

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.

    
atfergs 17.03.2009 17:24
quelle
2

ORDER BY wird fast immer schneller sein.

    
Ward Werbrouck 17.03.2009 17:27
quelle
2

Meiner Meinung nach schlägt nichts wirklich das Timing der Sache, so dass Sie wirklich, wirklich sicher wissen:

%Vor%     
karim79 17.03.2009 21:32
quelle
2

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.

    
Frank Farmer 17.03.2009 23:05
quelle

Tags und Links