To regler, du skal følge, når du opretter store batchimporter som denne:
-
Deaktiver SQL-logning:(
$manager->getConnection()->getConfiguration()->setSQLLogger(null);
) for at undgå stort hukommelsestab. -
Skyl og ryd ofte i stedet for kun én gang til sidst. Jeg foreslår, at du tilføjer
if ($i % 25 == 0) { $manager->flush(); $manager->clear() }
inde i din løkke, for at skylle hver 25. INSERT.
EDIT: En sidste ting, jeg glemte:Hold ikke dine entiteter inde i variabler, når du ikke har brug for dem længere. Her, i din loop, har du kun brug for den aktuelle enhed, der behandles, så gem ikke tidligere entitet i en $coordinatesfrcity
array. Dette kan føre til hukommelsesoverløb, hvis du bliver ved med at gøre det.