Två regler att följa när du skapar stora partiimporter så här:
-
Inaktivera SQL-loggning:(
$manager->getConnection()->getConfiguration()->setSQLLogger(null);
) för att undvika enorma minnesförluster. -
Spola och rensa ofta istället för bara en gång på slutet. Jag föreslår att du lägger till
if ($i % 25 == 0) { $manager->flush(); $manager->clear() }
inuti din loop, för att spola var 25:e INSERT.
EDIT: En sista sak jag glömde:håll inte dina enheter inom variabler när du inte behöver dem längre. Här, i din loop, behöver du bara den aktuella entiteten som bearbetas, så lagra inte tidigare entitet i en $coordinatesfrcity
array. Detta kan leda till att minnet rinner över om du fortsätter att göra det.