CGI-BBS > CGI > Perl > データが多いとエラーが出る!?


カレッヂ
カレッヂ


質問者 takahiro  投稿日 10/16(火) 16:08:01
こんにちは。

データがどんどんたまるCGI(BBSのようなもの)を作っているのですが、
データが多くなるとサーバーエラーが出てしまいます。

エラーが出るのは読み込み時で、オープンして配列に入れた後に
foreachでひとつずつ見ていくというものです。

foreach $in_data(@in_data) {
@data = split(/\,/,$in_data);
if (($data[0] eq $in{n}) && ($data[17] eq $in{p})){
(処理)
}
}

だいたい10,000行ぐらいになるとエラーが出る気がするのですが、、、
いつも慌ててデータ移動するので原因もわからずです(^-^;

これって当然のエラーなのでしょうか?

下らない質問でスイマセン。
やっぱりDB化したほうがいいのかなぁ・・・。

回答者 しあわせのツボ  [削除]  投稿日 10/16(火) 19:02:34
サーバ側で使用できる処理能力の上限を定めているか、そうでなくても処理に一定時間以上かかるとタイムアウトを起こしてエラーになります。
配列に一気に読み込まず1行ずつ処理するよう変更するか、データを一定以上ためないようにする必要があります。

返信(回答)する


Web裏技