Rolf B: Optimierung MySQL-Query

Beitrag lesen

Hallo bobby,

ich vergaß zu erwähnen dass auch andere Sortierungen vorkommen können

Dann hilft ein Index auf den Preis allein natürlich nichts...

ich wollt nicht mit mehreren selects arbeiten.

Deswegen ja der Vorschlag mit der Routine; aus PHP heraus ist es dann ein Aufruf. Was damit natürlich nicht geht ist ein freies Zusammenbauen der Query aus PHP heraus; du musst dann für jede Sortierung eine eigene Routine vorhalten (oder eine Routine mit einer Weiche drin für die richtigen Queries). Performance ist keine Frage von "ich will aber nicht", sondern von "was muss sein".

Ansonsten muss ich mit den 200 ms leben.

Du nicht. Deine Anwender. Wieviele Anwender verwenden diese Query wie oft? Wenn wir hier von einer Belastung reden, die auf einen Webrequest pro Sekunde hinausläuft, ist es egal. Hast Du tausende von Anwendern und einen Hagel von 100 Requests pro Sekunde oder mehr, kann der Unterschied zwischen 20 und 200 Millisekunden den Unterschied zwischen "schicke Seite, kann man empfehlen" und "grottenlahmes Ding, geh woandershin" bedeuten. Bzw. den Unterschied zwischen "ich brauche einen kleinen VServer" und "ich brauche eine fette Serverfarm".

Es ist natürlich deine Entscheidung, wie Du dein System baust. Vielleicht hat jemand anderes für Dich Hinweise, die eine bessere Ein-Select Abfrage für die Aufgabe ermöglichen.

Rolf

--
sumpsi - posui - clusi