0
我一直在思考下面的表結構保持歷史:維護大量歷史數據的有效
`id` bigint unsigned not null auto_increment,
`userid` bigint unsigned not null,
`date` date not null,
`points_earned` int unsigned not null,
primary key (`id`),
key `userid` (`userid`),
key `date` (`date`)
這將允許我這樣做有它的聲望圖,從而不會(在那裏我可以看到我加入該網站後我的代表增益)。
這裏的問題,雖然我只是跑了一個簡單的計算:
SELECT SUN(DATEDIFF(`lastclick`,`registered`)) FROM `users`
結果是儘可能接近沒什麼區別25,000,000個工日。如果我打算每天每個用戶保留一行,那就是一張大表,我期待着進一步的增長。即使我排除了用戶不上網的日子,這仍然很大。
任何人都可以提供任何意見,維護如此大量的數據?將在該表上運行的唯一的疑問是:
SELECT * FROM `history` WHERE `userid`=?
SELECT SUM(`points_earned`) FROM `history` WHERE `userid`=? AND `date`>?
INSERT INTO `history` VALUES (null,?,?,?)
請問ARCHIVE
引擎有什麼用處這裏,例如?或者我只是不需要擔心,因爲索引?
請爲用戶和歷史記錄添加完整的表結構 – Stephan
您使用的是什麼rdms? MySQL的? – Stephan