[PHP-users 23730] Re: PHP によるメモリエラーの回避方法

Sumito_Oda oda @ bst.jp
2004年 11月 26日 (金) 19:56:21 JST


今晩は、織田です。

# 何か環境が我慢大会の様相のようなので
# 諸事情が色々とあるのだろうと思いますが…
# (実MEM128MBだからそんなこともない?)

>どうも、処理が完了するまで処理済のデータを開放できない事が
>問題のようですね。
>
>これは、PHP よりは MySQL の仕様によるものかもしれませんね。

PHP側のmysql拡張の作りによるものです。

PHP4/5であればmysql_unbuffered_query()を使って、クエリ結果を
バッファリングせずに逐次処理を行ったり、PHP5ではmysqli拡張の
mysqli_use_resultでも同様の仕組みを利用することができます。
(後者は実際に使える状態になっているかは知りません)

PHP3でやるなら、MySQLのテンポラリテーブルに結果を一旦
SELECT&INSERTして、そこからの切り出し処理を
適度にmysql_free_resultしながら繰り返す感じでしょうか。
最もソース弄ってmysql_unbuffered_queryと同等のものを
PHP3に組み込む方が手っ取り早い感じもします。

今回のケースではそこまでクライアント側のメモリ使用量を
切り詰めなければならないという訳でもなさそうではありますが。

-- 
Sumito_Oda mailto:oda @ bst.jp


PHP-users メーリングリストの案内