: 여기서 내가 할 수있는 (유지 많은 양의 효율적
`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`)
이것은 SO의 평판 그래프로하는 것처럼 내가 뭔가를 할 수 있습니다 내가 사이트에 가입 한 이후로 내 rep 게인을보십시오).
여기하지만 문제 야 :
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