2013-05-30 6 views
0

다음은 Java 드라이버 끝에서 MongoDB의 페이지 매김을 수행하는 올바른 방법을 쿼리하는 것입니까?MongoDB Java 드라이버에서 페이지 매김 쿼리

Criteria criteria = new Criteria("users").in(userID); 
Query query = new Query(criteria).skip(start).limit(count); 

이 예제에서 "start"와 "count"는 메소드 매개 변수입니다. 이 접근법에 성능 문제가 있습니까? 그렇다면 MongoDB 쿼리에서 페이지 매김을 처리하기 위해 쿼리의 대체 방법은 무엇입니까?

답변

1

건너 뛰기 및 제한 사용은 데이터베이스의 결과 페이지를 가져 오는 일반적인 패턴입니다.

성능 측면에서 볼 때 응용 프로그램과 데이터베이스 서버가 서로 다른 컴퓨터에 있다고 가정 할 때 네트워크 홉에 대한 성능 비용이 데이터베이스에 액세스 할 때 항상주의해야합니다. 예제 코드의 경우 네트워크를 통한 단일 호출 만 가능합니다. 그러나 매우 큰 count 값이있는 경우 결과가 일괄 적으로 반환되므로 (즉, 여러 네트워크 호출이 필요함) 첫 번째 일괄 처리에서 101로 기본값이 설정됩니다 (http://docs.mongodb.org/manual/core/read-operations/#cursor-behaviors 참조).

관련 문제