
PHPでクイズのプログラムを作ったのですが、
CSVデータの件数が多いので処理に時間がかかり、
回答の集計で困ってます。
具体的に、
PHPクイズの回答をCSV形式でanswer.txtに記録させます。
記録の内容は、
問題1の回答番号、問題2の回答番号、問題3の回答番号、
というように記録させます。
このとき、1万件くらいの回答データが入ったanswer.txtから、
問題1で回答番号を1で答えた人の数、2で答えた人の数というように、
データの集計をしたいのですが、
効率の良い集計方法を教えていただければありがたいです。
自分が考えたのは、
1.file文で全行一括読み込みしてから
2.for文でデータを検証(総データ数分だけ繰り返す)
3.回答番号が一致したら、flagに+1をする
4.flagの数が集計結果となり、これを出力する
というルーチンです。
1万件くらいになると、あまり速くないです。
ちなみに、このルーチンで処理できるデータ件数って、
どのくらいが限度となるんでしょうか。
文章が稚拙で、長くなってしまい、すみません。
よろしくご指導、お願いします。
No.2ベストアンサー
- 回答日時:
予め集計結果のファイルや途中結果を別にどっかへ置いておけばいいんじゃないですかね?
回答時にanswer.txtへ保存するのと同じでtotal.txtを作っちゃうとか。
バックグラウンド処理でたまに集計させておくとか。
データベースを使っても同じことが言えますが、予め集計しておいた方が早くなると思います。
>ちなみに、このルーチンで処理できるデータ件数って、
>どのくらいが限度となるんでしょうか。
遅いと思ったときはすでに限度だと思います。
HTMLを表示する時に3秒待たされると遅いって思うらしいですよ。
No.3
- 回答日時:
単純に見る人が多いだけなら、pear/Cache なんかで、キャッシングしてしまうのもアリかと。
集計ファイルを前もって作るよりは安直ですが、キャッシュをフラッシュするタイミングで遅くはなります。
あくまで閲覧者が多いと言う条件でなら有効です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スタライズとは、どういう意味...
-
エクセルを取引先に渡したら何...
-
CSV形式での集計
-
GerberデータからBmpデータへの...
-
ビット数とデータ幅について
-
UNIX時間をEXCEL上で日付・時間...
-
Thunderbirdのインポートの処理...
-
キャッシュとバッファの違いは?
-
Access 外部データ インポー...
-
エクセルから、パワーポイント...
-
SQL Server にファイルを登録、...
-
初心者です。Accessを使って、...
-
SQLって何のためにあるのでしょ...
-
どういう専門学校へいくべきで...
-
別のACCESSデータベースのテー...
-
型 varchar から型 numeric へ...
-
AndroidからのAccessデータベー...
-
私はシステム会社に務めている...
-
リスト形式の表とデータベース...
-
JavaとOracle Javaって何が違う...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スタライズとは、どういう意味...
-
C#でint型をIntPtr型に変換した...
-
Access 外部データ インポー...
-
SQL Server にファイルを登録、...
-
AS400へAccessから接続す...
-
LVMでHDDが壊れた時の対応
-
エクセルを取引先に渡したら何...
-
値がこの列の整合性制約に違反...
-
自作Androidアプリのデータ引き...
-
キャッシュとバッファの違いは?
-
テクトロニクスのオシロスコー...
-
GerberデータからBmpデータへの...
-
CSVファイルの重複チェック
-
Perlで、「が」を、「...
-
ヘルプファイル(.chm)の作成...
-
アクセスVBAからエクセルの操作
-
CSVファイル取込時の文字化けに...
-
ホームページにMPG3を載せたい
-
アクセスでホームページのデー...
-
アクセスのデータが書き換えら...
おすすめ情報