我們假設我們有高流量項目(管網站),應該使用此選項提供排序(NOT IN REAL TIME)。視頻數量約爲200K,關於視頻的所有信息都存儲在MySQL中。每日視頻觀看次數約爲1.5KK。作爲文書我們有硬盤驅動器(文本文件),MySQL,Redis。如何存儲和收集數據,以挖掘過去24小時,過去7天,過去30天,過去365天最多查看的信息?
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)。在每個小時的開始計算前一小時的每個視頻的視圖,並將這些信息插入到MySQL中。然後重新計算總計(最近24小時)並更新表格中的統計數據。在每天開始時,我們必須做同樣的事情,但最近7天,最後30天,最後365天重新計算。這種方法對我來說似乎很差,因爲我們必須存儲每個視頻最近365天的信息才能進行正確的計算。
有沒有其他好方法?可能,我們必須爲此選擇另一種工具?
謝謝。
我假設您使用的文本文件,以避免加載MYsql。 – rerun 2010-06-07 15:12:57
是的,確切地說。我可以使用INSERT或INSERT DELAYED,但它會導致MySQL高負載。 – Kirzilla 2010-06-07 15:30:50