Cruz: DBI, Rekursion, prepared statements

Beitrag lesen

P.S.: Wie breit sind eigentlich Deine Bäume? Bringt Dir das gecachete prepare() denn überhaupt meßbare Vorteile?

Hi Michael,

eine elegantere Lösung, als mit fetchrow alle ergebnisse erstmal in einen array zu loopen habe ich nicht gefunden. Ich gebe jetzt auf danach zu suchen, weil es ziemlich hoffnungslos aussieht.

Ich habe aber die array lösung umgesetzt und performance tests durchgeführt. Als Testdaten  habe ich einen Kategoriebaum mit 59 Kategorien. Ich selecte nur sehr wenig Daten, und zwar einfach nur ids und Kategorienamen.
Das ist natürlich nur ein mikriges Testumfeld, wo man nur kaum merkbare Veränderungen der Laufzeit erzielen kann. Die durchschnittliche Laufzeit meines Skriptes beträgt 0.85 Sekunden und das beinhaltet nich nur die SQL Abfragen, sondern auch das Einlesen eines Templates, das Parsen von etwa 100 Variablen und die Ausgabe an den Browser. Ok jetzt kennst du das Umfeld, hier nun die Testergebnisse als Zahl:

Mit prepared statements zeigte das Skript einen eindeutigen Performanceanstieg um 0.03 Sekunden, das sind etwa 3% - 4% der gesamten Laufzeit.

Gut die 0.03 Sekunden machen die Kuh jetzt nicht fett, aber ich denke bei steigender Anzahl von Kategorien und selektierten Daten steigt auch der prozentuale Anteil des Performancegewinns. Bei komplexen Kategoriestrukturen mit einer hohen Userlast können es ganz schnell 3 - 4 Sekunden werden und die sind im Internet Gold wert.

Grüße
Cruz