このオプション ( NOT IN REAL TIME )を使用して並べ替えを提供するトラフィックの多いプロジェクト (チューブ サイト) があるとします。ビデオの数は約 200K で、ビデオに関するすべての情報は MySQL に保存されます。1日の動画再生数は約1.5KK。手段として、ハードディスク ドライブ (テキスト ファイル)、MySQL、Redisがあります。
Views
top viewed
top viewed last 24 hours
top viewed last 7 days
top viewed last 30 days
top rated last 365 days
そのような情報をどのように保存すればよいですか?
最初のアイデアは、すべての訪問をテキスト ファイルに記録することです (たとえば、 visits_20080101_00.logなど、1 時間ごとに 1 つのファイル)。各時間の開始時に、前の 1 時間のビデオごとのビューを計算し、この情報を MySQL に挿入します。次に、合計 (過去 24 時間) を再計算し、表の統計を更新します。毎日の初めに同じことをしなければなりませんが、過去 7 日間、過去 30 日間、過去 365 日間を再計算します。正しい計算を行うには、各ビデオの過去 365 日間の情報を保存する必要があるため、この方法は私にとって非常に貧弱に思えます。
他に良い方法はありますか?おそらく、これには別の楽器を選択する必要がありますか?
ありがとうございました。