2012-06-12 61 views
1

我在使用Play!編寫分析系統時玩耍(學習體驗)!框架(2)(JAVA),針對每個網頁視圖的數據庫條目(分析)

我想寫高效的代碼,並且由於這一點,我很努力在以下決定:

對於每一個瀏覽網頁變得有添加記錄,指定網站(example.org),頁面(/index.html)和查看日期。正如你所猜測的那樣,行數將會很大。 要使用數據,我選擇網站爲「example.org」的所有行,循環瀏覽結果以構建一個包含日期和它在該日期有多少個視圖的散列圖,然後使用它構建圖。

必須有這樣做的更多更好的辦法,

例如,而不是每個視圖中的行會更好,更新現有記錄添加一個視圖中的記錄。

任何援助將不勝感激。

謝謝

回答

0

你可以只在添加一些條件(如日期)的WHERE子句,那麼你可以對結果進行計數。這樣你就可以直接得到數據庫的結果。

查詢看起來像:

SELECT COUNT(*) 
FROM YOUR_TABLE 
WHERE SITE = 'thesite' 
     AND DATE = '<date>' 
GROUP BY SITE, DATE 
+0

所以你說的是什麼(對於圖表中的每個日期)我選擇日期爲20100124,網站爲example.org的地方並計算結果並返回每個網站的結果。聽起來不錯,我想限制可以查找的最大日期範圍,但是對於給定年份的每一天執行查詢將會花費大量的時間在sql服務器上。 – WookooUK

+0

然後你可以結合查詢: 選擇日期,COUNT(*) FROM YOUR_TABLE 其中站點=「thesite」 GROUP BY現場 – dounyy

0

必須有這樣做的更好的辦法,

Web服務器日誌HTML請求。大多數分析系統使用Web服務器日誌。

既然你提到你正在學習這一點,你就會以最靈活的方式收集統計數據。

我唯一的建議是從您的Web應用程序寫入的統計信息表中刪除所有索引。複製統計表以生成統計信息。該副本將具有所有必要的索引。

這樣,您可以獲得最快的寫入次數,因爲沒有要更新的索引。

如有必要,您可以在寫入表上擁有主索引或羣集索引。

+0

我的第一個停靠點是做了谷歌風格的JavaScript將數據發送到切斷處理APON我打算在回覆的第一部分中提到「內部監控」,比如處理系統日誌和跟蹤Apache服務器狀態頁面等。我不得不承認,你的迴應的第二部分飛過了我的頭,但我正在讀你說的話,所以我更瞭解它。再次感謝您的回覆。 – WookooUK

相關問題