phpbar.de logo

Mailinglisten-Archive

[php] Viel Arbeit: Tausende Durchläufe

[php] Viel Arbeit: Tausende Durchläufe

Sebastian Mendel lists at sebastianmendel.de
Mit Apr 7 11:48:32 CEST 2004


Thomas Gigold schrieb:

> Ich habe folgendes Problem und suche nach einer guten Lösung:
> Ich habe ein Script, das aus einer Tabelle A knapp 1500 Einträge liest 
> (werden stetig mehr). Innerhalb der while-Schleife wird eine Datei 
> gelesen, diese mit einem in Tabelle B vorhandenen Eintrag gegengeprüft. 
> Gibt es eine Änderung wird der Inhalt der Datei in die Tabelle B 
> geschrieben.

welche Rolle spielt dabei Tabelle A ?
geht die While-Schleife über die Einträge der Tabelle A oder B ?


> Jetzt meine Frage:
> Wie schaffe ich es am geschicktesten, dass es nicht in einem Time-Out 
> landet? Ich dachte ich lasse 50 Datensätze durchlaufen, geb dann die ID 
> des letzten bearbeiteten Datensatzes per header-Weiterleitung an das 
> gleiche Script wieder weiter und fang dann bei meiner DB-Abfrage mit 
> einer id > $_GET['id'] an.
> Dachte eigentlich das sei eine gute Idee; leider bringt es auch nicht 
> viel, da ich nach einer Weile wieder im Time-Out lande.

du könntest die UPDATE-Abfragen für die Tabelle B 'sammeln' und wenn du 
50 oder so zusammen hast diese auf einmal abschicken

$upates = array();
while ()
{
   ...
   $upates[] = 'UPDATE ...'
   if ( count($updates) > 50 )
   {
     mysql_query(implode('; ', $updates));
   }
}

mit dem genauen Code der While-Schleife könnte man vielleicht noch mehr 
helfen


-- 
Sebastian Mendel (www.sebastianmendel.de)

*www.warzonez.de* | www.tekkno4u.de | www.nofetish.com

php::bar PHP Wiki   -   Listenarchive