1

このオプション ( NOT IN REAL TIME )を使用して並べ替えを提供するトラフィックの多いプロジェクト (チューブ サイト) があるとします。ビデオの数は約 200K で、ビデオに関するすべての情報は MySQL に保存されます。1日の動画再生数は約1.5KK。手段として、ハードディスク ドライブ (テキスト ファイル)MySQLRedisがあります。

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 日間の情報を保存する必要があるため、この方法は私にとって非常に貧弱に思えます。

他に良い方法はありますか?おそらく、これには別の楽器を選択する必要がありますか?

ありがとうございました。

4

1 に答える 1

0

絶対的な精度が重要でない場合は、2 単位より長い情報を要約できます。

過去 1 ~ 2 時間の個々のビュー、過去 1 ~ 2 日間の時間別ビュー (1 時間ごとに 1 つの値)、および毎日のビュー (1 日ごとに 1 つの値) をさらに保存します。

"1-2" は、2 つのユニットがいっぱいになるまで保管し、それから前のユニットを合計することを意味します。

于 2010-06-07T15:44:11.770 に答える