質問: ユーザ毎にアクセスログや操作ログなどを保存して出力するWEBシステムを作成しています。 基本的にデータの保存にはMySQLを使っているのですが、 1テーブルにログを蓄積していくと膨大になり、処理に影響が出る事を懸念しています。 自分で調べた解決策として (A)ログは月ごとにファイルを作成し、アクセスがある毎に追加書き込みする。出力時は、日付を選択して対象ファイルを読み込み、一括出力。 (B)SQLiteを使い、ユーザ毎に専用のDBを作成してそこに書き込む (C)MySQLのパーティショニングを使用する 現在はAで対処しているのですが、ログを検索したい時、DB構造ではないので困難です。 CはMySQLのバージョンに依存する為、出来れば使いたくないです。 Bの方法が良いとも思いましたが、はてなの過去ログを調べるとオススメ出来ないとの意見がありました。 そこで質問ですが、膨大化するデータを扱い、出力・検索する事を目的とした場合、 どのような方法を用いればよいのでしょうか? こちらの環境はLAMPでPHP5.1.6とMySQL5.0.66を使っています。
回答: MySQLを使いテーブル末尾に _YYYYmm と年月情報を付加して、テーブルを月別に分ける処理を作ったことがあります。 個人的には悪くない処理方法だと思っています。