2009-09-19 2 views
1

일부 웹 카운터 백엔드를 수행하는 가장 좋은 방법에 대해 어떤 아이디어가 있었는지 궁금합니다. 나는 PHP를 통해 다운로드를 추적 할 것이며, 나는 하루에 약 150 만 건의 "다운로드"를보고 있으며, 내가 저장하는 것은 모두 "userid"와 "downloadid"가 될 것이다. 아마도 시간도? 가장 좋은 방법은 무엇입니까? 마지막 날에 모든 중복 다운로드를 컴파일하고 "day"및 "downloadid"로 인덱싱 된 다른 테이블을 만든 다음 "개수"열을 추가해야합니까?PHP + MySQL 웹 통계

분명히 두 테이블 모두 3 개월 후 "count"로 "month"와 "downloadid"로 요약 할 수 있습니다. 나는 더 좋은 방법이 있는지보기 위해 노력하고있는 중입니까? 다시 한번, 저는 PHP/MySQL 접근 방식을 선호합니다.

편집 : 나는 같은 것을 사용할 수 있습니다 http://www.infobright.org은 분명히 내가 주문형 통계를 끌어해야합니다,하지만 읽을 수있는 기록은 대부분 1000 : 1 개

감사합니다, 제임스 Hartig

답변

1

왜 여러 테이블을 만들고 싶은지 잘 모르겠다. 테이블의 크기가 걱정 되니?

아마도 각 방문을 하나의 테이블에 ID, 타임 스탬프 및 다운로드 ID가있는 행으로 삽입하는 것이 좋습니다. 적절히 작성된 SQL 조회를 사용하면 조회에서 WHERE 문을 사용하여 데이터를 삽입 한 후 특정 요일과 시간 또는 특정 다운로드 ID에 대한 데이터를 추출 할 수 있습니다.

희망 하시겠습니까?

편집 : This article은 60 억 개의 행으로 일부 테스트를 실행합니다. 내가 알 수 있듯이, MySQL은 많은 수의 행을 가지고도 여전히 매우 빠르게 실행되고 있습니다.

+0

저는 주로 5 천만 개가 넘는 행 (30 일 분)의 테이블 성능에 대해 우려하고 있습니다. 그게 문제가 아닌가? 안 그래요? –

+0

문제가 아니어야하며 보고서를 작성하고 일부 데이터 (응축)를 지울 수 있다고 말한 것입니다. – RageZ

+0

MySQL이 눈에 띄지 않는 백만 줄의 눈물이 있습니다. 내가 말할 수는 없지만, 계산할 2 ~ 2 개를 기꺼이 주면 MySQL은 5 천만을 잘 처리 할 수 ​​있어야합니다. 통계 관리를 위해 필요한 정보가있을 것으로 기대합니다. 하나의 테이블을 사용하는 것에 대해 걱정하지 않아도됩니다. –