PHPでこれを行う方法を誰かが知っているかどうか疑問に思っていました。ファイルを開き、最初の1000行を取得し、それらの行でいくつかのことを行うスクリプトを実行しています。次に、phpファイルはそれ自体の別のインスタンスを開いて次の1000行を取得し、ファイルの最後に到達するまで繰り返します. 特定の行をシークできるように splfileobject を使用しています。これにより、これを 1000 行のチャンクに分割することができます。私が抱えている最大の問題は、パフォーマンスにあります。私は10,000,000行以上のファイルを扱っていますが、最初の10,000行ほどは非常に高速ですが、その時点以降は急激な速度低下があり、その時点まで探す必要があると思います.
私がやりたいのは、最初の 1000 行を読み取り、ファイルからそれらを削除して、スクリプトが常に最初の 1000 行を読み取るようにすることです。ファイルの残りの部分をメモリに読み込まずにこれを行う方法はありますか。私が見た他の解決策には、各行を配列に読み取ってから最初の X エントリを取り除くことが含まれますが、1,000 万行ではメモリと時間がかかりすぎます。
誰かがパフォーマンスを高速化する解決策やその他の提案を持っている場合は、大歓迎です。