PHP を使用して非常に大きな SQLite ファイル (数十ギガバイト) を処理する良い方法は何ですか?
処理中にファイルが停止してしまいました~~
ringa_lee2017-05-16 13:06:33
このような大きなファイルは PHP で処理できません。ファイルを処理するには、PHP はまずファイルをメモリに読み込む必要があります。各スクリプトが使用できるメモリは、PHP 設定ファイルのmemory_limit に関係します。メモリが十分に大きい限り、無制限に設定してシステムの最大メモリを使用できます。
推奨される解決策は、まずファイルを小さなファイルに分割し、sed などのシェル プログラムを使用して、ファイルを特定のサイズ (サイズは PHP のメモリ サイズに応じて決定されます) に従っていくつかの小さなファイルに分割してから、処理することです。それをPHPで。
世界只因有你2017-05-16 13:06:33
行ごとに読み取る、PHP にはこの機能があり、一度に 3 行を読み取りますが、SQLite はローカル データベースであり、読み取りはドライバーの問題です。すべてを出力しないでください。すぐに
阿神2017-05-16 13:06:33
データは MYSQL に転送され、その後、読み取りと書き込みのために PHP に提供される必要があります。 SQLite はもともと小さなファイル データベースであり、巨大なデータを処理する能力は低いです。
大家讲道理2017-05-16 13:06:33
ショック!このような大量のデータには、依然として sqlite が使用されます。
さらに、一度に数十ギガバイトをメモリに読み込むと、実際に数十ギガバイトのメモリがない限り、間違いなくメモリがバーストします。
このデータベースを分割するか、他の種類のデータベース処理に変換することをお勧めします。
过去多啦不再A梦2017-05-16 13:06:33
PHP のテキスト処理は理想的ではなく、非常に遅いです。 mysql に入ってから処理するという解決策も実現可能ですが、時間がかかります。
参考にして確認してください
世界只因有你2017-05-16 13:06:33
sqlite は分かりませんが、これほど大きなファイルを直接処理するのは難しいはずです。しかし、一般的な考え方はあります。ただ解体中。図書館によると。時計か何か。
高洛峰2017-05-16 13:06:33
これは sqlite ファイルなので、[データベースの読み取り]->[プロセス]->[ストレージ]をクリックするだけで、PHP はデフォルトで sqlite を直接使用できます。