/ / Inserimento più rapido del record nel database dal file excel Laravel 5 - php, mysql, excel, upload, laravel-5

Inserimento più rapido del record nel database dal file excel Laravel 5 - php, mysql, excel, upload, laravel-5

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 № 1

Dalla 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();
});