Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Symfony :Perlengkapan data doktrin :bagaimana menangani file csv besar?

Dua aturan yang harus diikuti saat Anda membuat impor batch besar seperti ini:

  • Nonaktifkan SQL Logging:($manager->getConnection()->getConfiguration()->setSQLLogger(null); ) untuk menghindari kehilangan memori yang besar.

  • Siram dan bersihkan sesering mungkin alih-alih hanya sekali di akhir. Saya sarankan Anda menambahkan if ($i % 25 == 0) { $manager->flush(); $manager->clear() } di dalam loop Anda, untuk menyiram setiap 25 INSERT.

EDIT: Satu hal terakhir yang saya lupa:jangan simpan entitas Anda di dalam variabel saat Anda tidak membutuhkannya lagi. Di sini, di loop Anda, Anda hanya memerlukan entitas saat ini yang sedang diproses, jadi jangan simpan entitas sebelumnya di $coordinatesfrcity Himpunan. Hal ini dapat menyebabkan memori Anda meluap jika Anda terus melakukannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menjalankan kueri SQL saat mengklik tombol?

  2. Mysql FROM_UNIXTIME sebagai UTC

  3. Kesalahan mysql 1236 dari master saat membaca data dari log biner

  4. Fungsi MySQL ROUND() – Membulatkan Angka ke Jumlah Tempat Desimal yang Diberikan

  5. Perilaku aneh Koneksi Database Laravel Homestead