我想在MySQL數據庫中創建計數器,該計數器存儲特定日期,月份和年份中每個產品的視圖數量。MySQL中的數據庫日計數器
問題是我有2000左右的產品。我想過使用以下模式:
id (BIGINT)
year (INT[4])
month (TINYINT)
day (TINYINT)
product_id (INT)
pageviews (BIGINT)
與解決方案的問題是,如果在最壞的情況下,每個產品每天都看,我會每天在我的數據庫2000行。乘以36天,我將每月有72,000。
我想知道是否有更好的方法來實現這一點。我認爲每日數據只能作爲應用程序變量(在.NET中開發)和ArrayList保存在內存中。如果我選擇了這個方向,我將會有更少的行/數據,每月2000行。
我真的想保留每日累計頁面瀏覽量。順便說一下,預覽僅用於說明目的,我將存儲不同的數據,但該數據將會非常頻繁地更新。
如果我使用每日專欄,它會經常更新,幾乎每隔2-5秒。我打算通過調用Javascript中的ASP.NET web服務來更新MySQL異步,傳遞product_id並增加計數器+1。這是爲了防止應用程序等待更新發生。
我也想知道估算表的大小。如果我做正確的事:
BIGINT = 8個字節
日期時間= 10字節
INT - 4個字節
^如果我決定去一個DATATIME列,而不是年/月/日
30字節* 2000 = 60,000字節
60KB(約)* 30天= 180KB月
180KB月* 12個月= 2160KB /年
我說得對嗎?
您應該使用'DATE'列來存儲年,月和日。既然你*需要每天每個產品的數據,我不認爲有一個更簡單的解決方案。 – Vatev 2012-07-30 13:25:07
它會更高效,性能更明智嗎? – 2012-07-30 13:39:25
它可能會更有效率,但更重要的是它會讓你的生活變得更簡單:) – Vatev 2012-07-30 14:09:50