mysql - PHPExcelインポート10,000個のデータ接続タイムアウト
世界只因有你
世界只因有你 2017-05-16 12:59:12
0
4
1059

初心者は PHP を学んだばかりです。現在、開発では phpexcel を使用してデータベースに 10,000 レコード (43 列の 1 レコード) を挿入する必要があります。存在しない場合は、元のデータの挿入と更新を続行します。フラグを設定しないと、レコードはスキップされます。
現在の状況では、2,000 個のデータをインポートするのに 20 秒以上かかります。10,000 個のデータをインポートすると、アップロードしたファイルが見つからないというエラーが報告されます。が保存されます。 `$result=move_uploaded_file($_FILES'inputExcel',$uploadfile);

リーリー

ここでは行数と列数を取得できません。 Set_time_limit=0 がコードに追加され、メモリが 128M に変更されました。指導を求める

世界只因有你
世界只因有你

全員に返信(4)
伊谢尔伦

メモリがいっぱいになっているはずです。収量反復を使用して、毎回挿入される項目の数を制限できます。実際、これはコルーチンです。

いいねを押す +0
大家讲道理

10,000 個のデータを 1 回インポートするとタイムアウトになりやすく、サーバーに大きな負荷がかかります。この種のビッグ データ インポートは、非同期で完了することができます。ユーザーを待たせないでください。代わりにコルーチンの使用を検討することもできます。

いいねを押す +0
漂亮男人

アップロードされたファイル名をキューに追加します。キューからファイル名を読み取り、インポート用にファイルを開くスクリプトを作成します。スクリプトを crontab スケジュールされたタスクに追加するか、サービスとして作成します。

いいねを押す +0
为情所困

CSVなのでPHPExcelを使う必要はありません。以前このライブラリを使用していました。 https://packagist.org/package... (PHP7のみをサポートしているようです)。デモは書きません。ドキュメントで自分で探します。何十万ものアイテムをストレスなくインポートできます。ありがとうございます。
もう 1 つ、https://packagist.org/package... を紹介します。最初に csv とは何かを理解することをお勧めします。csv インポート クラスを自分で作成することもできます。これは最も効率的で軽量です。 。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート