0

stackoverflow.com 들어 얼마나 많은 조회에 대한 통계가 있습니다.어떻게 stackoverflow보기 카운터와 같은 게시물의 조회수를 얻을 수 있습니까?

어떻게 추적합니까? 등록 된 사용자와 등록되지 않은 사용자는 질문을 볼 수 있습니다.

해당 계산에 대한 데이터베이스 관계 스키마 란 무엇입니까?

데이터베이스 테이블의 특정 질문에 대한 열 값을 증가시켜야합니까?

또는 사용자가 해당 질문을 볼 때 새로운 레코드/행을 추가해야합니까? 그런 다음 해당 테이블의 sum (thatcolumn) 결과를 에코로 표시 할 수 있습니까?

+0

제발, 우리는 당신 stackoverflow의 구조를 말할 수 없습니다. 그 비밀 =). 더 구체적으로 질문이 너무 일반적입니다. – safarov

+0

페이지 뷰 추적. – shibly

답변

0

여기에는 다양한 방법이 있습니다. 당신이 언급 한 두 가지가 있지만 상황에 따라 다른 것들이 있습니다.

stackoverflow처럼 사이트 방문 횟수가 많은 경우 한 사람이 질문을 볼 때 데이터베이스 테이블의 카운터를 증가 시키면 데이터베이스가 어떻게 설정되었는지에 따라 확실하지 않을 수 있습니다.

내가 전에 사용해 왔던 또 다른 접근법은 memcache/xcache/eaccelerator와 같은 캐시 엔진에보기를 저장하고 (각기 자신의 장점이 있음) 매시간/밤마다/등을 실행하는 cron이 있습니다. 그러면 뷰가 정리되고 SO.com의 사례 id의 고유 ID로 참조되는 데이터베이스 테이블에 삽입되고 캐시의 카운터가 재설정됩니다.

전체 안정성을 원하면 mongoDB과 같은 noSQL 엔진이 빠르고 효율적인 키 값 데이터 저장에 탁월합니다.

+0

해당 페이지/질문/게시물로 해당 행의 값을 증가시키는 것이 왜 비용이 많이 듭니까? 내가 언급 한 두 가지 방법 중 어떤 방법이 더 낫다. 캐시 엔진이 카운트를 증가 시키나요? 캐시 엔진의 메커니즘은 무엇입니까? – shibly

+0

비싸지 만 (비쌀 수도 있음) 시스템을 알지 못해도 될 수 있습니다. 시스템이 10,000 업데이트를 얼마나 잘 처리 할 수 ​​있습니까? 내가 어디에서 왔는지 알 겠어? 캐시 엔진은 카운트를 증가시키지 않고, 캐시를 읽고, 1 씩 증가시킨 다음 캐시에 저장하여 다음 사람이보기로 증가 할 수있게합니다. 우리가 당신의 시스템을 모르기 때문에 두 사람 중 어느 쪽이 더 낫다고 말할 수는 없습니다. 시간당 500-1000 건의 조회 만하는 경우 열을 증가 시키면 좋지 않은 접근 방식이 아닙니다. – ncremins

+0

두 번째 방법은 어떨까요? 각보기에 대해 새 레코드/행을 추가 한 다음 해당 테이블에 대해 count do sum (thatcolumn) 또는 count (*)를 표시하십시오. – shibly

0

관심있는 모든 질문을 본 횟수 인 경우 특정 질문 레코드에 카운터를 추가합니다. 각각의 모든 질문보기에 대해 다른 테이블에 항목이 있으면 손쉽게 벗어날 수 있습니다.

매번 조회수를 얻기 위해 이러한 레코드를 요약하면 사용중인 시스템에서 성능 문제가 발생할 수 있습니다.

더 자세히 설명하기 위해 질문 표에 정수 열을 추가하는 것이 좋습니다. 질문을 볼 때마다 카운터를 단순히 증가시킵니다. 단순하게 유지하십시오. 빨리 지켜라.

+0

더 설명해 주시겠습니까? 당신의 대답을 이해할 수 없었습니다. 내가 각보기에 대한 행을 증가해야합니까? – shibly

관련 문제