[PHP-users 10127] Re: PHP + MySQL の大量処理について

Arai Junya php-users@php.gr.jp
Sun, 15 Sep 2002 10:59:57 +0900


こんにちは、じゅんやです。


> 50万回ループするはずが、なぜ2万回程度でストップしてしまうのか、原因がわか
ら
> ず手詰まり状態です・・・・

ループしている途中でMySQLとの接続がとじてしまっているということはないでしょ
うか?

原因が上記と仮定した場合に思いつく方法として

1 ・・・ dbnameテーブルのwebカラムにindexをつける。
2 ・・・ mysql_pconnect()を使用してみる。
3 ・・・ ループで作成したSQLをテキストファイルに(例:update.sql)出力して、
     システム関数で、system( mysql -u hoge -p hoge dbname <
/home/hoge/update.sql )
     としてバッチ処理をする。

の3点があります。

以前1万7千件のデータを同じように更新しようとして100件程度でとまってしまうと
いうことがあり、
そのときはDBにインデックスをつけることでうまくいきました。
(しかしインデックスも考えてつけないと別なところで思わぬ弊害が出たりするので
注意が必要です。)

規模(ケタ)がかなり違いますが、参考になれば幸いです。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
荒井潤弥
junya@ginzado.ne.jp
jarai@yahoo.ne.jp