2009-05-24 2 views
0

모든 게시물을 기록하고 데이터베이스의 웹 사이트에서 요청을 받아야합니다. 이 두 개의 테이블이 될 것입니다 : 타임 스탬프, 사용자 ID와웹 사이트의 모든 요청을 데이터베이스에 기록하십시오.

  • 요청과 URI 이름, 값 및 요청 ID로
  • 요청 매개 변수를 요청
내가 한 번만 분석 보고서를 사용

달마다. 이 데이터를 정기적으로 사용하지 않습니다.

하루에 약 백만 건의 요청이 있으며 요청 매개 변수 표가 매우 커집니다. MySQL에서 큰 테이블을 문제없이 처리 할 수 ​​있습니까?

+0

당신이 그것을 위해 필요한 것, 당신은 그것에 대해 어떤 쿼리를 실행할 것입니까? 어떤 쿼리, 얼마나 많이, 얼마나 자주? 또한 일반적인 access.log에 필요한 데이터가 포함되어 있지 않습니까? –

답변

0

이 유형의 문제에 대한 일반적인 해결책은 한 달 전체에서 로그를 구문 분석하는 프로그램을 작성하는 것입니다. 정교한 MySQL 기능이 필요하지 않은 경우이 접근 방식을 고려해야합니다.

정말로 데이터베이스가 필요한 경우 로그를 오프라인으로 구문 분석하십시오. 그렇지 않으면 데이터베이스가 다운되면 데이터가 손실됩니다. 로그는 꽤 안전한 것으로 알고 있습니다.

테이블 인덱스는 무료가 아닙니다. 보유한 인덱스가 많을수록 쿼리가 더 빨리 실행되지만 인덱스가 많을수록 데이터를 삽입하는 속도가 느려집니다.

0

예, mysql은 보통 수백만 개의 행을 처리하지만 나중에 데이터로 수행 할 작업과 해당 테이블의 인덱스에 따라 성능이 그리 높지 않을 수 있습니다.

추신. 우리 프로젝트에는 수백만 개의 제품이있는 거대한 pricelist가 있으며 문제없이 작동합니다.

1

각 요청마다 db에 쓰는 것을 피하거나 slashdot 효과에 취약 할 수 있습니다. 조용한 시간 동안 웹 로그를 분석하여 db를 업데이트하십시오.

+0

slashdot 효과에 대해 설명해 주시겠습니까? –

+0

http://en.wikipedia.org/wiki/Slashdotted –

관련 문제