2012-08-17 2 views
2

나는보기 카운터가있는 가이드 섹션을 원합니다. 지금은 성능에 대해 걱정합니다. 나는 누군가가 그 페이지를 보았을 때 나는 카운터를 늘리고 싶다.몽고 - 데이타베이스 방문

하루에 1000000 번 조회수가 있으면 어떨까요? 그래서 나는 카운터를 높이기 위해 1000000 번 db를 쳐야합니다. (하나의 가이드에서만!)

성능 저하를 계산하는 데 문제가 있습니다. 정수를 업데이트하기 위해 성능이 크게 저하되었거나 성능이 저하 되었습니까?

제 해결 방법은보기를 캐시하고 모든 x보기에만 제출하는 것입니다. 이렇게하면 db 히트가 x 배만큼 감소합니다. (예 : x = 100)

현재 mongohq.com을 사용하고 있으며 가격이 책정되지 않은 것으로 보입니다. 따라서 스토리지 비용 만 지불하고 읽기/쓰기는하지 않습니다.

가격 모델을 남용하고 싶지 않기 때문에 묻습니다.

편집 :

다음은보기 카운트를 증가시키는 코드입니다.

public static void increaseViews(String title) throws UnknownHostException, 
      MongoException, DbAuthException { 
     Datastore ds = DatabaseConnect.getInstance().getDatastore(); 
     Query<UserGuides> q = ds.createQuery(UserGuides.class).field("title") 
       .equal(title); 
     UpdateOperations<UserGuides> ops = ds.createUpdateOperations(
       UserGuides.class).inc("views"); 
     ds.update(q, ops); 
    } 

답변

4

면책 조항 : 나는 MongoHQ

$ INC 연산자를 사용하여이 작업을 수행하는 작은 성능 히트의 설립자입니다. MongoDB는이 일을하는 좋은 방법이 있습니다.

db.pages.update({page: "index"}, {$inc: {hits: 1}}) 

몽고이 매우 빠르게 처리 할 수 ​​있습니다 당신이 무엇을하고 있는지 잘 작동합니다

예를 들어 쿼리처럼 보일 수 있습니다. 계획을 악용하는 곳으로 가면 정중하게 알려 드리겠습니다.)

+0

감사합니다. Morphia 드라이버를 사용하여 Java 코드를 추가했습니다. –