2011-08-07 107 views
1

我需要建議我應該爲記錄訪問者統計信息的腳本創建哪些數據庫字段。網站統計表數據庫字段

到目前爲止,我有

ID bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
os varchar(10) default NULL, 
time datetime NOT NULL default '0000-00-00 00:00:00', 
ip varchar(40) default NULL, 
host varchar(150) default NULL, 
browser varchar(50) default NULL, 
os varchar(20) default NULL, 
referrer text, 
search text, 
language varchar(5) default NULL, 
screenres varchar(15) default NULL, 
PRIMARY KEY (ID), 
KEY time (time) 

基本上,我想記錄儘可能多的數據可能每次訪問,但同時保持桌面快速訪問,因爲這將有許多記錄...

您是否認爲我應該將原始格式(值爲$_SERVER['HTTP_USER_AGENT'])的os +瀏覽器存儲到單個字段中,然後確定輸出上的os和瀏覽器?

+1

好了,到了最後,這取決於你想要的數據和什麼做什麼你想知道用戶...所以這是一個非常抽象的行爲。 – Quasdunk

回答

0

在這裏任何人都可以給你一個更清晰的答案之前,還有很多需要回答的問題。

  1. 什麼是這一切將被用於?

  2. 這是要記錄訪問過的每個頁面還是訪問者的初始「登錄頁面」?

而且,是的,你可以只存儲在輸出(如果需要的時間)在一個領域的HTTP_USER_AGENT和過程,你要記錄用戶多長時間停留在頁面上,看它是否是一個錯誤或者他們正在閱讀。從那裏你可以看看可能看到他們是否至少點擊了你網站上的其他鏈接。

至於存儲速度,很大程度上取決於您在一段時間內有多少訪問者,一旦您擁有這樣一個數字,您就可以模擬許多訪問您網站的人,同時看到只要你需要一個瓶頸。

0

在我看來,「保持(...)快速訪問」和單詞「表」不適合一個句子。簡單地說,因爲與任何專用日誌記錄方法相關的日誌訪問數據庫總是很慢。

最好的方法 - 使用腳本引擎的本機日誌記錄,例如syslog。

我想你使用的是PHP,所以只需使用fopen()flock()fwrite()調用即可輕鬆實現最佳結果。然後,您可以簡單地記錄有關訪問者的所有信息:Cookie,獲取,發佈,會話,整個服務器數組(僅包含像referrer或ip這樣的字段)。記錄腳本執行時間和腳本錯誤(如果有的話)也很有用。

至於我,我用PHP Log2Files Advanced Logger,它記錄爲文本或二進制 - 這真的是最快的解決方法:)