0

50,000 個のデータ セットを MySQL データベースに挿入するループを実行しています。突然、ホスト スペースのサーバーに次のメッセージが表示されます。

致命的なエラー: 行 14 の /srv/www/htdocs/server/html/email.php で 20971520 バイトの許容メモリ サイズが使い果たされました (32 バイトを割り当てようとしました)

意味はわかりますが、すべてのメモリをリセットして再度使用できるようにするにはどうすればよいですか?

ノート:

のように記憶を増やしたくない

ini_set('memory_limit', '-1');

でも完全に解放したい。

4

2 に答える 2

1

ほとんどの場合、プロバイダーからの共有システムがある場合、自分でメモリ制限を設定することはできません。次に、サーバー上の 100 人ごとに高いメモリ制限を設定すると、プロバイダーに問題が発生します。

したがって、彼らはあなたの場合20MBの固定サイズを与え、memory_limit機能を無効にします。

20MBはそれほど多くありません。また、大量のデータセットを挿入しようとすると、メモリが必要になります。これが、 32 bytes from allowed memory 20971520 bytesというメッセージが表示される理由です。

20MB では、この問題を解決する本当に良い解決策はないと思います。おそらく、データベースに何らかのロジックを追加して、ストアド プロシージャを作成してみてください。

于 2012-04-10T08:16:20.367 に答える