0

PHPを使用してMySQLデータベース内のシステムのすべてのユーザーを戻すSQLがあり、これらのユーザーを取得して別のシステムに移動する必要があります(フィールドについては気にしないでください。既にマップしています)。問題は、データベースに67000人を超えるユーザーがいることです。PHPでそれを実行し、すべての結果を一度に取得する方法はありますか?原因私が試したところ、エラーではなくエラーが発生しましたが、PHPはすべての結果を一度に返すことができません。

4

3 に答える 3

1

PHPのデフォルトのメモリ制限に達している可能性があります。(少なくとも)2つのオプションがあります:

  1. それらをすべて一度にフェッチし(今のように)、PHPがそのスクリプトで使用する可能性のあるメモリを増やします。「memory_limit」という名前で見つけることができます。 http://nl3.php.net/manual/en/ini.core.php php.iniを変更してシステム全体ではなく、現在のスクリプトに対してのみ実行するように注意してください。
  2. 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 に答える