PHPを使用してMySQLデータベース内のシステムのすべてのユーザーを戻すSQLがあり、これらのユーザーを取得して別のシステムに移動する必要があります(フィールドについては気にしないでください。既にマップしています)。問題は、データベースに67000人を超えるユーザーがいることです。PHPでそれを実行し、すべての結果を一度に取得する方法はありますか?原因私が試したところ、エラーではなくエラーが発生しましたが、PHPはすべての結果を一度に返すことができません。
3 に答える
1
PHPのデフォルトのメモリ制限に達している可能性があります。(少なくとも)2つのオプションがあります:
- それらをすべて一度にフェッチし(今のように)、PHPがそのスクリプトで使用する可能性のあるメモリを増やします。「memory_limit」という名前で見つけることができます。 http://nl3.php.net/manual/en/ini.core.php php.iniを変更してシステム全体ではなく、現在のスクリプトに対してのみ実行するように注意してください。
- 1回あたり1000など、小さなバッチでレコードを取得します。そうすれば、メモリ制限に達することはありません。
どちらの場合も、スクリプトを実行できる時間を増やしたい場合があります。max-execution-timeを見てください。
http://nl3.php.net/manual/en/info.configuration.php#ini.max-execution-time
于 2012-07-25T12:17:56.393 に答える
0
これをPHPスクリプトの上に置きます:ini_set('memory_limit'、 '512M');
phpスクリプトに512MB未満のofcを与えることができます
于 2012-07-25T12:21:41.580 に答える
0
SQLで制限を使用できます
制限0、1000
制限10001、2000
等
于 2012-07-25T12:22:02.453 に答える