私はエクセルファイルからデータベースにレコードをアップロードするモジュールを作っています。それらは単なる電話番号です。だからここに私のコード:
$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();
});