페이지에 대한 고유 뷰의 수를 추적하는 사용자 지향 뷰 카운터 (질문 뷰에 대해 SO와 유사)를 구현하려고합니다. 여기에 두 similar 질문이 있지만 아무도 내 질문에 완전히 대답하는 것.고유 한 페이지 뷰 카운터를 구현 하시겠습니까?
(데이터베이스 테이블 등에서) 가장 적합한 설정은 무엇입니까? 'questions'테이블에 'views'열을 추가하고 모든 페이지 뷰에서이 값을 증가시키는 것이 좋을까요? 보기를 고유하게하려면 조회 ID 및 IP 주소가있는 다른 테이블을 가질 수 있으며 현재 IP가있는 항목이없는 경우 '보기'열만 증가시킵니다. 그러나이 'ip-view'테이블은 정말 빨리 익숙해 질 것입니다. 주로 모든 페이지 뷰와 모든 IP를 테이블에 저장해야하는 오버 헤드가 걱정됩니다.
성능 병목 현상이 발생하지 않도록 어떻게 최적화 할 수 있습니까? 제가 설명한 것보다 더 나은 접근법이 있습니까? 고유 조회수 만 계산된다는 것은 매우 중요합니다.
업데이트 : 구현 방법을 제안 이외에, 나는 또한 성능 문제는 단순히 IP가 존재하는지 확인하고 모든의 '보기'열을 업데이트하는 순진한 접근 방식을 가정 플레이에 와서 어디에 더 이해하고 싶습니다 페이지보기. 주요 문제는 방대한 양의 삽입이 발생하는지 (과도한 트래픽을 가정 함) 또는 객체 대 IP 매핑 테이블의 크기가 더 큰지 (새 고유 방문자마다 질문 당 새 행이 삽입되기 때문에 엄청날 수 있음) 레이스 조건을 고려해야합니까 (저는 업데이트/증가 SQL 문이 원자 적이라고 가정했습니다)? 모든 질문에 대해 유감스럽게 생각하지만이 문제에 어떻게 접근해야하는지에 관해서는 분실했습니다.
아마도 내 대답을 확인하십시오. http://stackoverflow.com/questions/1269968/incremented-db-field/1269973#1269973 –