0

サーバー (スレッド) で 1 時間ごとに実行される php スクリプトを取得しました。このスレッドが行っていることは、ユーザーがデータを含む Excel ファイルをアップロードできることです。スレッドは Excel ファイル内のデータをデータベース内のデータと比較し、何かを実行します (見つかった行が存在しない場合、データベースへの挿入は関係ありません)。Excel ファイルを読み取るには、次のように呼び出します。

$data = new Spreadsheet_Excel_Reader();
$data->read($file);

ユーザーは、File_1.xls、File_2.xls、File_3.xls という名前のサーバーに、さらに xls ファイルをアップロードできます。最初のファイルを読み取り、すべてのデータを取得します。すべての比較を行います。すべての挿入を行います。エクセルの行。スレッドが長く実行されている場合、たとえば、ファイル 1 とファイル 2 を挿入でき、ファイルが 6000 行以上のような大きなファイルである場合、エラー ログに Abort が記録されることに気付きました。エクセルリーダーのせいだと思います。何か案は?

4

1 に答える 1

3

私が理解しているように、あなたのサーバーには、複数のファイルポインタと大きな配列データを保持するのに十分なメモリ (RAM) がありません。サーバーのメモリを増やすか、別のアルゴリズムを試して、XLS からデータを読み取って比較挿入を実行してください。

于 2012-11-15T11:06:46.790 に答える