いくつかのディメンションに分類された1時間ごとの統計データを含む大きなテーブルがあります。これで十分な大きさになり、クエリを高速化するためにデータの集計を開始する必要があります。テーブルは次のようになります。
customer INT
campaign INT
start_time TIMESTAMP
end_time TIMESTAMP
time_period ENUM(hour, day, week)
clicks INT
たとえば、キャンペーンがnullである行をテーブルに挿入でき、クリック数の値はその顧客と期間のすべてのクリック数の合計になると考えていました。同様に、期間を「日」に設定することもできます。これは、その日のすべての時間の合計になります。
これはかなり一般的なことだと確信しているので、MySqlでこれを達成するための最良の方法は何でしょうか?INSERT INTOをSELECTステートメントと組み合わせて(マテリアライズドビューのように)想定していますが、このテーブルには常に新しいデータが追加されているため、以前に計算した集計データの再計算を回避するにはどうすればよいですか?