ist php Sortieren besser als mysql "order by"?
Ich Frage mich, ob im Hinblick auf Leistung und in Anbetracht einer mysql select auf eine Tabelle mit sehr, sehr, sehr viele (> 1.000.000) zeichnet, ist eine bessere Sortierung der Ergebnisse mit sql "order by" Sortieren oder die Ergebnisse nach der Abfrage mit der klassischen Programmierung-sort-Algorithmus ... hat jemand irgendeinen Vorschlag?
Tanks
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bist du vergleicht ein system mit Methoden, implementiert in C optimiert, soll genau diese Aufgabe, mit anderen, die Sie umzusetzen in eine interpretierte Skriptsprache.
Grundsätzlich kann alles, was in C geschrieben ist, wird sehr viel schneller sein als eine entsprechende Funktion in PHP geschrieben, der um einen Faktor 10 bis 100.
Wie bereits erwähnt, es ist keine Frage überhaupt, dass es deutlich effizienter ist, konfigurieren Sie Ihren DB richtig und lassen Sie es die Arbeit machen.
mySQL, Hände nach unten. Es ist optimiert, um dies zu tun, und kann machen Verwendung von Indizes. Dies würde schrecklich sein, zu tun, in PHP (und würden Sie erreichen die
memory_limit
schnell).MySQL gewinnen wird. Ein Grund mehr, neben den anderen aufgeführt ist, dass, vorausgesetzt die Datensätze sind bereits in der DB, die Sie nicht haben, um Sie zu kopieren aus der DB um Sie zu Sortieren. Und paging-oder subindexing Sie wird einfach und automatisch optimiert.
Kurz, wenn die DB KANN es tun, die DB SOLLTE es tun, fast immer.
In dem hypothetischen Fall, dass du tatsächlich die Datensätze, die im Speicher des application, mysql wird immer noch schlagen die Hosen von Ihren app, weil wenn Sie von der Konfiguration Ihrer Datenbank-Recht es nicht zu Sortieren.
Ich fyou bestellen möchten, indem Sie in eine Tabelle 1 Mio records, geben Sie im index-das wäre in der Regel umgesetzt werden, da ein B-Baum an, in dem Mysql können zu Fuß durch und erhalten die sortierten Ergebnisse.
Manchmal, wenn Sie können, vermeiden Sie ein "Using temporary; Using filesort" es lohnt sich, obwohl ich nicht getan habe, umfangreiche Tests.
Anstatt zu Fragen, mysql Sortieren nach Namen in ruby ich tun
Den daraus resultierenden mysql-Abfrage wird nun noch einfacher:
Natürlich würden Sie nicht wollen, dies zu tun, wenn Sie zurückgegeben, mehr als ein paar hundert Zeilen.