2011-07-03 56 views
3

我有網站,在這裏用戶可以發佈自己的文章,我想給有關每個文章訪問次數和引用它的作者全統計資料。實現看起來非常簡單,只需爲每次訪問存儲數據庫記錄,然後使用聚合函數繪製圖形等等。途徑採集大量訪問統計

的問題是,文章接受24小時,只是在一個月300K左右的看法,統計表將獲得約9萬條記錄這是一個非常大的數字,因爲我的服務器是不是很強大。

是否有這樣的任務的解決方案?是否有一種算法或緩存機制可以存儲長期統計數據而不會失去準確性?

P.S.這是我原來的統計數據表格:

visitid INT 
articleid INT 
ip INT 
datetime DATETIME 

回答

6

假設使用家庭自制的使用跟蹤解決方案(與其他響應中提到的GA相反),可能需要兩個數據庫設置:

  • 這是一個「實時」數據庫,它可以在事件發生時捕獲事件。
  • 其中來自「實時」數據庫中的數據被收集定期,爲是「離線」數據庫[任選]聚集和索引。

目的此安裝方法大多是由操作問題驅動。 「實時」數據庫沒有編入索引(或最低限度編入索引),以便快速插入,並且在流量較輕時定期清空(通常是每個晚上),因爲「脫機」數據庫收集整天收集的事件。

兩個數據庫可以有非常相同的架構,或者「脫機」數據庫可以引入各種形式的聚集。應用於離線數據庫的具體聚合細節可能會有很大不同,這取決於是否希望保持數據庫的大小受到檢查,並取決於被認爲重要的數據(大多數統計/彙總功能引入了一些信息損失,並且需要確定哪些損失是可以接受的,哪些不是)。由於使用日誌的價值的「半衰期」性質,即細節的相對價值隨着時間衰減,所以常見的策略是將信息聚合到多層中,從而最後收集的數據,比如說, X天基本保持不變,X和Y天之間收集的數據部分彙總,最後,Y天以前的數據只保留最顯着的信息(比如說點擊數)。