人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpで、postgresqlのDBに大量の検索(SELECT)をかける処理を行っています。検索数は1万件以上あるのですが、一括でデータをSELECTしようとすると、途中まではうまくいくのですが、途中から「Allowed memory size of 8388608 bytes exhausted in ***(DB名)」というエラーメッセージが出力されて止まってしまいます。
メモリサイズの問題だとは思うのですが、対処法がわかりません。
どなかた分かる人がいましたら、教えてください。
よろしくお願いいたします。

●質問者: sasamame
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:dB PHP postgreSQL SELECT エラーメッセージ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ito-yu
●35ポイント

php.iniのmemory_limitを見直してください。デフォルトは8Mとなっていると思います。

◎質問者からの返答

はぃ。なっていました。10Mにしてみたらできるようになりました。

ありがとうございました。


2 ● くまっぷす
●35ポイント

http://www.clara.co.jp/inquiry/faq/ma0010.php

/etc/php.ini の書き換えによって割当量を変更させることが可能です。

ただし、このようなエラーが出る場合はプログラムの作り方自体に何か問題がある場合が多いです。メモリはいくらあっても限界はありますから…。

一度にデータをSELECTするのではなく、分割してSELECTしてメモリが溢れない範囲で順次結果を持ってくるようなやりかたにしたほうがいいと思います。

◎質問者からの返答

書き換えですか。

なるほど。了解しました。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ