非常に大きなデータベースにすばやくデータを取り込むために、大きな.SQLファイルを生成するプログラムを作成しました。PHPでスクリプトを作成しました。コーディングを始めたとき、私はfopen()とfwrite()を使用していました。ファイルが大きくなりすぎると、プログラムは制御をシェルに戻し、ファイルは不完全になります。
残念ながら、「大きすぎる」の正確な大きさはわかりません。4GBくらいだったと思います。
この問題を解決するために、ファイルをstdoutにエコーしました。次のようにプログラムを呼び出したときにリダイレクトしました。
[root@localhost]$ php generatesql.php > myfile.sql
これは魅力のように機能しました。私の出力ファイルは約10GBになりました。
それでは、私の質問は次のとおりです。fopen()とfwrite()は、生成できるファイルのサイズに関して、ファイルシステムによって制限されていますか?もしそうなら; これはPHPの制限ですか?これは他の言語でも起こりますか?