Dos reglas a seguir cuando crea grandes importaciones por lotes como esta:
-
Deshabilitar registro de SQL:(
$manager->getConnection()->getConfiguration()->setSQLLogger(null);
) para evitar una gran pérdida de memoria. -
Enjuague y limpie con frecuencia en lugar de solo una vez al final. Le sugiero que agregue
if ($i % 25 == 0) { $manager->flush(); $manager->clear() }
dentro de su ciclo, para vaciar cada 25 INSERTOS.
EDITAR: Una última cosa que olvidé:no mantengas tus entidades dentro de variables cuando ya no las necesites. Aquí, en su ciclo, solo necesita la entidad actual que se está procesando, así que no almacene la entidad anterior en un $coordinatesfrcity
formación. Esto podría llevarte a un desbordamiento de memoria si sigues haciéndolo.