PHPを使ったスピード重視の集計について
以下のログがあります。
---
日付 時分 A B C カウント
2006/8/3 11:00 1 4 8 84
2006/7/4 17:04 3 5 4 47
2006/8/4 13:30 1 4 6 32
2006/3/3 15:15 5 1 8 8
2006/5/8 18:20 3 3 3 43
・・・(以下、100万行位続く)・・・
---
このログを"時間"単位でA,B,C毎の"カウントを合計"したく、イメージとしては以下のテーブルを作りたいと思っています。(時間,A,B,Cの組み合わせでログに出て来なかったらテーブルに出力する必要無し。順番も特に問わない。)
---
日付 時間 A B C カウント合計
2006/8/3 11 1 4 8 84323
2006/8/5 13 4 8 3 9793
・・・・
---
処理スピードを重視して、メモリ上で行う前提で以下の方式を考えました。
多段配列を使い、ログが出るたびに
$count["2006/8/3"]["11"]["1"]["4"]["8"] = 7672
のような配列を作ります。もし、配列があるのならカウント部分を足し算します。
最後に配列全部をファイルに書き出すという方法です。
しかし、ログの量があまりにも多くやはり処理時間がかなりかかります。またプログラムも多段配列の表記にすると非常に見辛い状態です。何か別のアルゴリズムか手法により、スピード重視で処理する方法をご存知であればご教授ください。
前提がPHPを使わなければいけない&DB使えないという環境です。
よろしくお願いします。