문서 메뉴
문서 홈
/
MongoDB 아틀라스
/ / / /

세그먼트 간 쿼리 실행 병렬화Parallelize Query Execution Across Segments

이 페이지의 내용

  • 구문
  • 행동
  • 제한 사항
  • 예제

concurrent 옵션은 쿼리 내 병렬 처리를 활성화합니다. 이 모드에서 Atlas Search는 더 많은 리소스를 사용하지만 각 개별 쿼리 지연 시간을 개선합니다. 이 기능은 전용 검색 노드에서만 사용할 수 있습니다.

concurrent 의 구문은 다음과 같습니다:

{
"$searchMeta"|"$search": {
"index": "<index name>", // optional, defaults to "default"
"<operator>": {
<operator-specifications>
},
"concurrent": true | false,
...
}
}

concurrent 부울 옵션을 사용하면 Atlas Search에 세그먼트 간 쿼리 실행을 병렬 처리하도록 요청할 수 있으며, 이로 인해 대부분의 경우 응답 시간이 향상됩니다. concurrent 옵션에 대해 다음 값 중 하나를 설정할 수 있습니다.

  • true - 쿼리를 멀티스레드로 실행하도록 Atlas Search에 요청

  • false - 쿼리를 단일 스레드로 실행(기본값)

Atlas Search를 사용하면 쿼리별로 이 동작을 제어하여 사용량이 많고 오래 실행되는 쿼리에 대해서만 동시 실행을 활성화함으로써 경합을 최소화하고 전반적인 쿼리 처리량을 향상할 수 있습니다. 동시 실행은 대규모 데이터 세트에서 특히 효율적입니다. 세그먼트의 양이 많기 때문입니다.

concurrent 옵션을 사용하여 쿼리를 실행할 때 Atlas Search는 각 쿼리가 동시에 실행된다는 것을 보장하지 않습니다. 예를 들어, 너무 많은 동시 쿼리가 대기열에 추가되면 Atlas Search는 단일 스레드 실행으로 대체될 수 있습니다.

샘플 데이터의 sample_mflix.movies 컬렉션에 대한 다음 쿼리를 고려하세요. 쿼리는 titlenew york 라는 용어가 포함된 영화에 대한 동시 검색을 나타냅니다.

1db.movies.aggregate([
2 {
3 "$search": {
4 "text": {
5 "path": "title",
6 "query": "new york"
7 },
8 "concurrent": true
9 }
10 }
11])
← 1. 결과 정렬

이 페이지의 내용