Sto facendo un modulo che carichi i record su un database da un file excel. Questi sono solo numeri di telefono. Quindi ecco il mio codice:
$file = Input::file("file");
Excel::load($file, function($reader) {
// Getting all results
$results = $reader->get()->toArray();
//var_dump($results);exit;
foreach ($results as $key => $value) {
$phone = new Phone();
$phone->msisdn = $value["msisdn"];
$phone->save();
}
});
Sto usando https://github.com/Maatwebsite/Laravel-Excel leggere il file excel. Funziona bene, 20.000 caricamenti di registrazioni in 20 minuti credo, c'è un modo per farlo o caricarlo più velocemente? So che dipende anche dal server ma ci sono altri fattori? Sto usando MySQL
Grazie
risposte:
0 per risposta № 1Dalla loro documentazione è possibile inserire i risultati mentre si utilizza un file così grande. In questo modo è possibile leggere in blocchi del file anziché caricare l'intero file in memoria.
http://www.maatwebsite.nl/laravel-excel/docs/import#chunk
0 per risposta № 2
Potresti provare questa alternativa più veloce (https://github.com/rap2hpoutre/fast-excel):
(new FastExcel)->import($file, function ($line) {
$phone = new Phone();
$phone->msisdn = $value["msisdn"];
$phone->save();
});