2017-05-23 1 views
0

skip (및 관련 성능 문제)을 사용하는 방법에 대해 많이 읽었습니다. 내 응용 프로그램의 경우 성능 문제는 문제가되지 않지만 요청하는 페이지 사이에 새 레코드가 도착하면 건너 뛸 때 어떤 일이 발생하는지 분명하지 않습니다.morphia는 페이지 매김 중에 도착하는 새로운 레코드를 어떻게 처리합니까?

예를 들어 10 개의 레코드가 있고 사용자가 5 개의 페이지를 요청하고 배달한다고 가정 해 봅시다. 사용자가 첫 번째 페이지를 탐색 할 때 다른 5 개의 레코드가 db에 삽입되면 사용자는 다음 페이지 5를 요청합니다. ID 또는 날짜를 정렬한다고 가정 할 때 사용자는 현재 동일한 5 개의 레코드를 반환합니다 (왜냐하면, 두 번째 페이지의 경우 skip은 처음 추가 된 5 개의 레코드를 건너 뛴 다음 5 번째 레코드를 반환하며 원래 5 번째 레코드는 원래 반환 된 레코드와 같습니다.

답변

0

정확합니다. 추가/제거 된 항목의 성능과 정확성 모두 문제입니다.

좋은 설명을 보려면 http://use-the-index-luke.com/no-offset을 참조하십시오 (Markus Winand는 수년간 상쇄를 위해 싸웠습니다 ;-)). 키 집합 페이지 매김은 MongoDB와 Morphia에서 내가 아는 바에서 지원되지 않으므로 직접 작성해야합니다. 고유 한 항목 (예 : 날짜 및 ID)으로 항상 작업하고 있는지 확인하십시오.

다른 시스템에서는 기본적으로이 기능을 구현했습니다 (예 : search after 인 Elasticsearch).

+0

내가 뭘 찾고 있었는지 - 고마워! – mark

관련 문제