sql >> Databasteknik >  >> RDS >> Mysql

Symfony :Doktrindatafixtur :hur hanterar man stor csv-fil?

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.



  1. GROUP_CONCAT() Funktion i MySQL

  2. MySQL LIMIT i en korrelerad delfråga

  3. UPPDATERAD:Bugg orsakar att Microsoft Office 365 Build 2105 bryter åtkomstapplikationer

  4. Vilken är den bästa kolumntypen för ett postnummer i USA?