1 천만 데이터가있는 MongoDB 모음이 있습니다. 두 개의 기본 필드 domain
(문자열 유형)과 level
(정수 유형)이 있습니다. 두 필드 모두 인덱싱되지만 find 문 다음에 결과를 정렬 할 때 mongo는 결과를 반환하는 데 많은 시간을 할애하고 있습니다.검색 결과에서 mongo 문서를 정렬하는 방법
find 명령문에서 결과를 빨리 분류하는 방법은 무엇입니까? domain
에 하나 level
에 하나 귀하의 의견에서
db.collection.find({"domain":"DOMAIN_NAME"}).sort({"level":1})
'Cr'이란 무엇입니까? 이 컬렉션은 파편인가요? –
'.explain()'(https://docs.mongodb.com/manual/reference/method/cursor.explain/)을 사용하면 Mongo가 실제로 쿼리를 수행하는 방법을 알 수 있습니다. 일반적으로 인덱스가 좋은 첫 번째 단계입니다. 속도가 작동 함 – malarzm
반환 결과에는 얼마나 많은 물체가 있습니까? mongo가 100,000 개의 문서를 정렬하려고하면 속도가 느려집니다. @ malarzm 설명에 아주 잘 가리 킵니다. 또한 실제로 필요하지 않은 필드를 제외하기위한 프로젝션을 살펴보십시오. 반환 할 데이터가 적습니다. => 더 빠른 쿼리. –