2012-01-17 37 views
0

我想使用PHP爲我的網站添加獨特的計數器。所以這個計數器將爲數據庫中的每個頁面保存訪問者的IP。我有這樣的數據庫結構的想法: 1表(hits)和2列(ip,page_url)。所以我可以使用簡單的SQL查詢獲取distinc IP,但是我擔心性能。爲每個頁面獲得獨特的點擊率是不錯的方法嗎?
在conclusin中,對於基於數據庫的獨特命中計數器系統,哪種數據庫結構更好?
什麼數據庫結構更適合基於數據庫的獨特命中計數器系統?

編輯:
我也有第二個問題。在PHP文件中獲得訪問者的IP後,如果在數據庫中控制數據庫不是這個IP,然後添加數據庫或只添加所有訪問者IP,那麼獲取相關頁面的特定IP以獲得唯一的訪問次數?

在此先感謝。

+2

這個問題太模糊,無法用現在的形式來回答。你能否讓你的問題更具體? – 2012-01-17 23:02:03

回答

2

這種模式已經足夠了(儘管使用Redis或其他基於內存的數據存儲如果可以將其添加到您的體系結構中將會快得多)。

使用PHP的ip2long(您存儲的IP地址之前)和long2ip(當你獲取IP地址)來存儲基地32個IP地址,並檢索它們作爲IP地址字符串 - 這允許更快的檢索(整數是更快查詢子句,組等字符串)。

+0

感謝您的回答。(+ 1)我也有第二個問題。在PHP文件中獲得訪問者的IP後,如果在數據庫中控制數據庫不是這個IP,然後添加數據庫或只添加所有訪問者IP,那麼獲取相關頁面的特定IP以獲得唯一的訪問次數? – John 2012-01-17 23:17:15

0

我會推薦使用redis數據庫,它提供了這個功能,並且非常快速。雖然爲此你需要維護這個額外的數據庫。

對不起,我的答案不是很直接地回答你的問題,但如果你對其他技術開放。