Hans: Geschwindigkeitsunterschied von Array vs LIMIT (MYSQL)

Hallo Leute,

in meinem Board lese ich zuerst ALLE threads in ein Array ein und gebe sie je nach dem Wert der Variable $threadstart aus (damit nicht alle Threads auf einer Seite angezeigt werden)

Ist das in Ordnung so, oder sollte ich lieber per LIMIT die Threadzahl begrenzen und dann ausgeben?

Danke,
Hans

  1. Halihallo Hans

    Ist das in Ordnung so, oder sollte ich lieber per LIMIT die Threadzahl begrenzen und dann ausgeben?

    Letzteres, umbedingt, wenn es möglich ist. Nicht nur die Performance steigt dadurch,
    sondern auch das Einsparen von Speicherplatz. PHP ist langsamer, als
    vergleichbare Operationen einer Datenbank.

    Viele Grüsse

    Philipp

  2. Na,

    also meine Erfahrung lautet da eher auf "Lass die Datenbank alles tun was sie dir anbietet". Erstens sind Datenbanksysteme i.d.R. hochoptimiert und können solche Limits verdammt schnell ausführen und zweitens schonst du alleine von der normalen Vorstellung die CPU schon mehr:
    1. LIMIT
    Datenbank: Bitte führe die Abfrage aus und gib mir Sätze 30-40
    --> such such, ignoriere bis 30, beende bei 40, gib aus

    2. Array
    Datenbank: Gib mir alle Sätze
    --> such such such such such ..., gib aus
    PHP: Bitte übernimm in Array
    --> speicher speicher ...,
    PHP: Bitte gib 30-40
    --> such in array, gib aus.

    PHP ist sicherlich auch gerade auf so Array Grundfunktionen hin optimiert, aber dennoch muss es mit allen Sätzen der DB herumjonglieren, in meinen Augen sinnlose Arbeit...