2009-08-11 11 views
3

나는 다양한 사이트에서 데이터 마이닝을하는 프로젝트를 진행하고 있는데, 좋은 비유는 이베이 경매에 통계 데이터를 수집하는 것입니다. 그러나 중요한 데이터를 저장할뿐만 아니라 원래 페이지에 대한 액세스를 보장해야하며 일부 사이트에서는 원본 페이지가 영구적이지 않을 수 있습니다. 예를 들어 eBay가 완료 후 경매 페이지를 삭제 한 경우입니다. Google이 페이지를 캐시하는 방식과 유사한 시스템을 사용하는 것이 이상적입니다. 예를 들어 내 서버에 페이지 사본을 저장하는 것이 좋습니다. 그러나 필자는 데이터베이스에 필요한 리소스에 큰 영향을 주었을뿐만 아니라 합병증이있을 수 있다고 조언했습니다.데이터베이스의 페이지를 캐시하는 가장 좋은 방법은 무엇입니까?

답변

3

캐시하는 각 페이지가 5kb인데도 캐시는 200 페이지를 캐시하고 DB에 1MB를 추가했습니다. 캐시는 20,000 페이지이고 사용자는 100MB를 사용했으며 많은 페이지 (마크 업 + 컨텐츠를 고려할 때)는 5kb보다 커질 것입니다.

대체 옵션으로 디렉토리에있는 (잠재적으로 압축 된) 파일로 디스크에 페이지를 저장 한 다음 데이터베이스에서 저장된 파일 이름을 참조하는 것입니다. 페이지 코드의 내용을 통해 검색 할 필요가없는 경우 쿼리를 사용하면 전체 페이지를 저장하면서 데이터베이스 및 쿼리 결과의 크기를 줄일 수 있습니다.

0

나는 Dav가 말한 내용을 되풀이하지만, 동일한 페이지에 대해 시간이 지남에 따라 반복적으로 색인을 작성하는 경우 변경 사항을 저장하는 것을 고려할 수도 있습니다. 또한 텍스트를 varbinary로 저장하면 공간을 절약 할 수 있습니다. 검색과 마찬가지로 색인 페이지와 병렬로 Lucene을 설정할 수 있습니다.

0

저장 한 페이지에 서버 측 CSS & JS 파일이 포함되지 않습니다. 캐싱 DB/파일 시스템에서 제공 될 때 잘못 렌더링 될 수 있습니다.

페이지의 사진이나 이미지는 어떨까요?

5Kb는 페이지 저장에 적당하지 않으며 JS가 포함 된 페이지를 저장하는 것에 대해 궁금합니다 ... 특히 AJAX 페이지. 일어날 일을 정확히 시각화하는 것이 어렵지만 페이지의 텍스트 만보기 만하면됩니까?

누구나 Google의 캐싱 작동 방식을 알고 계십니까?

관련 문제