/ / Registro de inserção mais rápido para banco de dados a partir do arquivo excel Laravel 5 - php, mysql, excel, upload, laravel-5

Registro de inserção mais rápida no banco de dados do arquivo excel Laravel 5 - php, mysql, excel, upload, laravel-5

Eu estou fazendo um módulo que você carrega registros em um banco de dados de um arquivo do excel. Esses são apenas números de telefone. Então aqui está o meu código:

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

Estou a usar https://github.com/Maatwebsite/Laravel-Excel para ler o arquivo excel. Ele funciona bem, 20.000 registros de uploads em 20mins, eu acho, existe uma maneira de fazer isso ou carregá-lo mais rápido? Eu sei que isso depende também do servidor, mas há outros fatores? Eu estou usando o MySQL

obrigado

Respostas:

0 para resposta № 1

A partir de sua documentação, possivelmente, dividir os resultados enquanto você está usando um arquivo tão grande. Dessa forma, você pode ler em partes do arquivo em vez de carregar o arquivo inteiro na memória.

http://www.maatwebsite.nl/laravel-excel/docs/import#chunk


0 para resposta № 2

Você poderia tentar esta alternativa mais rápida (https://github.com/rap2hpoutre/fast-excel):

(new FastExcel)->import($file, function ($line) {
$phone = new Phone();
$phone->msisdn = $value["msisdn"];
$phone->save();
});