解析して MySQL データベースに挿入しようとしている大きな csv ファイル (約 700MB) があります。csv (約 4x10^6 行) を 1 行ずつ読み取り、レコードを解析して挿入します。次に、バッチごとに約 10,000 レコードのバッチでデータベースにレコードを挿入します。解析中にいくつかの処理があります。たとえば、11d 12:34:56
を使用して形式の期間を時間数に変換しpreg_match
ます。
preg_match('/(?P<days>\d+)d (?P<hours>\d+)?P<minutes>\d+)?P<seconds>\d+)/', $hoursUsed, $matches);
スクリプトがファイルを完全に解析し、すべてのレコードをデータベースに挿入するには、約 40 分かかります。ここでの質問は次のとおりです。 * 予想される時間は? 40分って普通なのかな?* csv ファイルの解析は
PHP でサイズが約 700MB (約 4x10^6 行) のファイル (csv) を解析していますが、ファイルの解析に約 40 分かかります。解析を最適化しようとしていますが、最適化できるのは 45 分から 40 分です。私の質問は次のとおりです。
- 予想される時間は?40分って普通なのかな?
- ファイルが完全に解析され、すべてが挿入されるまで応答がないので、リクエストでこれを行います。これを非同期プロセスに委任するより良い方法はありますか?
参考までに、CakePHP を使用しています。