Tim: Große Menge von Datensätzen aus DB in Datei schreiben

Beitrag lesen

Hallo,

ich habe ein kleines Performanceproblem und weiß nicht wie ich dem begegnen soll.

Ich möchte gern etwas über 15000 Datensätze aus einer MySQL DB in eine csv Datei schreiben. Mit einer geringen Anzahl an Datensätzen klappt das soweit auch ganz gut. Aber wenn ich alle auf einmal schreiben möchte, lädt die Seite ewig bzw. es kommt erst gar nicht zu einem Resultat.

Hier mal ein Codeschipsel:

ob_end_clean();  
set_time_limit(0);		  
		  
/* DB Suche gibt Array von Objekten zurück -> $results */  
			  
$csv = utf8_decode("A;B;C;" . "\n");  
		  
foreach($results as $object) {			  
  $csv .= utf8_decode($object->getA()) . ";" .  
          utf8_decode($object->getB()) . ";" .  
          utf8_decode($object->getC()) . ";" .  
          "\n";  
}  
		  
header("Pragma: public");  
header("Content-Type: application/ms-excel; utf-8");  
header("Content-Length: " . strlen($csv));  
header("Content-Disposition: attachment; filename='test.csv'");  
		  
echo $csv;  
  
die();

Hat wer eine Idee, wie ich das besser machen kann?

MFG
Timo