Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Symfony :Urządzenie danych Doctrine :jak obsłużyć duży plik csv?

Podczas tworzenia dużych importów wsadowych należy przestrzegać dwóch zasad:

  • Wyłącz rejestrowanie SQL:($manager->getConnection()->getConfiguration()->setSQLLogger(null); ), aby uniknąć ogromnej utraty pamięci.

  • Płukać i czyścić często, a nie tylko raz na końcu. Proponuję dodać if ($i % 25 == 0) { $manager->flush(); $manager->clear() } wewnątrz pętli, aby opróżnić co 25 wstawek.

EDYTUJ: Ostatnia rzecz, o której zapomniałem:nie trzymaj swoich encji w zmiennych, gdy już ich nie potrzebujesz. Tutaj, w swojej pętli, potrzebujesz tylko bieżącej encji, która jest przetwarzana, więc nie przechowuj poprzedniej encji w $coordinatesfrcity szyk. Może to doprowadzić do przepełnienia pamięci, jeśli będziesz to robić dalej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połączenie bez DSN z serwerem mysql w dostępie ms bez zapamiętywania nazwy użytkownika i hasła

  2. Instrukcja MySQL Select i IF()

  3. Czy mogę zmienić ft_min_word_len na współdzielonym hostingu?

  4. zapytanie mysql LIKE trwa zbyt długo

  5. mysql wybierz zapytanie gdzie data =... nie zwraca danych