dedlfix: Geschwindigkeit PHP optimieren

Beitrag lesen

echo $begrüßung;

ich habe eine sehr umfangreiche DB-Abfrage, bei der ca. 10.000 Datensätze auls Ergebnis herauskommen.

10000 Datensätze können eine Datenmenge von nur 10000 Byte (ohne Metadaten) oder aber deutlich mehr sein. An dieser Anzahl lässt sich nicht erkennen, ob die Datenmenge ein Problem darstellt oder nicht.

Momentan arbeite ich über
while($array=mysql_fetch_array())

PHP holt bei einem mysql_query() im Hintergund bereits alle Datensätze ab und puffert sie. Das muss so sein, damit Funktionen wie mysql_num_rows() ein Ergebnis bringen können, denn dazu muss man als Client die Ergebnismenge durchgezählt haben. Diese automatische Pufferung kann man mit mysql_unbuffered_query() umgehen.

Innerhalb der while-Schleife gibt es _nur_ Datenausgabe, keine weitere VErarbeitung, also auch keine Funktionen oder weitere DB-Abrufe.
Das dauert aber trotzdem ca. 15 Minuten, bis alle Datensätze verarbeitet sind.

Hast du mal eine Zeitmessung der einzelnen Teile deines Programms durchgeführt? Wie lange braucht mysql_query()? Wie lange braucht die while-Schleife? Um irgendetwas zu optimieren muss man zuerst analysieren, an welcher Stelle der Verlust auftritt, damit man dort ansetzen kann. Ansonsten optimiert man an der falschen Stelle, und erzielt dabei vielleicht marginale Ergebnisse oder auch das Gegenteil.

echo "$verabschiedung $name";