我需要實現產品頁面訪問統計(按天)。如何更好地在Rails中做到這一點?頁面訪問統計
頁面訪問統計
回答
的快速和骯髒的方式來構建內部的Rails這樣的事情是做一個跟蹤表:
create_table :product_views do |t|
t.integer :product_id, :null => false
t.date :viewed_at, :null => false
t.integer :views, :null => false, :default => 1
end
add_index :product_views, [ :product_id, :viewed_at ], :unique => true
add_index :product_views, :viewed_at
唯一索引將意味着你每天每個產品一個條目。對於該產品沒有任何視圖的日子將會缺失條目。這也意味着你可以使用MySQL的ON DUPLICATE KEY
功能,如果這是你的後端數據庫。
可以填充這個使用單個SQL調用:
class Product
def self.record_view!(product_id)
connection.execute(
sanitize_sql([
"INSERT INTO product_views (product_id, viewed_at)
VALUES (?, CURRENT_DATE())
ON DUPLICATE KEY UPDATE views=views+1",
product_id
])
)
end
def record_view!
self.class.record_view!(self.id)
end
end
這可以在任何時候被調用,將增加1到您的計數表。你可以使用標準的SQL很容易地報告。
而且還可以將統計信息寫入memcached或redis,並在午夜複製db,您怎麼看待它? – alexandr 2010-09-01 19:33:03
如果你在事物的數據庫方面遇害,我只能這麼做。通常像這樣的INSERT調用在接近零的時間發生,因此需要數千個才能顯着緩慢。哪裏出現瓶頸不是記錄數據,而是將它們分組成每週或每月的報告。你需要爲這些派生值創建一個彙總表,並且可能每晚更新一次。 Memcached對於第二類網站的100多個請求來說只是非常必要的,但即使如此,如果調整得當,MySQL也可以保持良好的狀態。 – tadman 2010-09-02 02:12:18
我如何根據月份和年份對訪問進行分組? – alexandr 2010-09-26 20:09:39
- 1. 如何統計看到同一頁面的訪問者數量?
- 2. MySQL頁面訪問者統計,數據庫溢出保護
- 3. 如何統計頁面的訪問者數量? (MVC)
- 4. Facebook的頁面統計 - 通過Opengraph訪問?
- 5. 訪問頁面的方法訪問頁面與頁面方法
- 6. 計算頁面訪問量/ MySQL的
- 7. 創建統計頁面。 Php
- 8. WordPress的訪問統計
- 9. 訪問https頁面
- 10. 訪問XML頁面
- 11. 跟蹤網站頁面訪問者和IIS級別的統計信息
- 12. 使用PHP生成統計信息(頁面視圖,唯一訪問者)?
- 13. 無法訪問HTML頁面但可訪問JSP頁面
- 14. 從其他頁面訪問頁面類
- 15. 訪問頁面的頁面,工人
- 16. mongoid - 設計訪問者的統計系統
- 17. 網頁只能通過特定的計算機系統訪問
- 18. 權限訪問頁面
- 19. Shiro頁面級訪問
- 20. Django:限制訪問頁面
- 21. 404當訪問Codeigniter頁面
- 22. 無法訪問頁面ashx
- 23. 從主頁面訪問User.Identity
- 24. 權限訪問php頁面
- 25. 限制訪問頁面php
- 26. 從aspx頁面訪問PageMethod
- 27. 訪問頁面的功能
- 28. Facebook長期訪問頁面
- 29. 5最後訪問頁面
- 30. Orchard:受限訪問頁面
如果您有內部FQDN,您可以使用:google.com/analytics,如果您擁有可公開訪問的網址 - 無論如何您都很好。 – kd7 2010-09-01 18:39:10
順便提一下,我的評論是,如果你想使用一個現成的解決方案,如果你想推出自己的自定義分析片段的應用程序是完全無法訪問的外部世界,並且不能使用谷歌的跟蹤代碼,請忽略我的評論。 – kd7 2010-09-01 18:45:56
我需要用戶的公共統計信息。 我在考慮GA,但我擔心它是QUTU政策。 – alexandr 2010-09-01 19:23:27