/ / excelファイルからデータベースに挿入レコードを高速化するLaravel 5 - php、mysql、excel、upload、laravel-5

Laravel 5 - php、mysql、excel、upload、laravel-5からデータベースへの挿入レコードを高速化

私はエクセルファイルからデータベースにレコードをアップロードするモジュールを作っています。それらは単なる電話番号です。だからここに私のコード:

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

私は使用しています https://github.com/Maatwebsite/Laravel-Excel Excelファイルを読む。 それはうまく動作し、20,000レコードが20分でアップロードされると思います。私はそれがサーバーにも依存していることを知っていますが、他の要因がありますか?私はMySQLを使用しています

ありがとう

回答:

回答№1は0

そのような大きなファイルを使用している場合は、ドキュメントからチャンクを取得する可能性があります。そうすれば、ファイル全体をメモリに読み込むのではなく、ファイルのまとまりを読み込むことができます。

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


回答№2の場合は0

あなたはこのより速い選択肢を試みることができます(https://github.com/rap2hpoutre/fast-excel):

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