Docs Menu
Docs Home
/
MongoDB 매뉴얼
/

Time Series 인덱스

이 페이지의 내용

  • 클러스터형 컬렉션
  • 복합 인덱스
  • 부분 인덱스
  • TTL Indexes
  • 금지된 인덱스
  • 인덱싱 권장사항

time series 컬렉션의 인덱스는 일반적으로 일반 컬렉션의 인덱스처럼 작동하지만 몇 가지 추가 고려 사항과 제한 사항이 있습니다.

Time Series 컬렉션 에 세컨더리 인덱스 가 있고 기능 호환성 버전 (fCV)을 다운그레이드해야 하는 경우, 먼저 다운그레이드된 fCV와 호환되지 않는 세컨더리 인덱스를 모두 삭제해야 합니다. 자세한 내용은 를 setFeatureCompatibilityVersion 참조하세요.

버전 6 부터 시작됩니다.0, time series 컬렉션의 모든 필드에 보조 인덱스를 추가할 수 있습니다. MongoDB는 개별 문서가 아닌 문서 버킷 을 기준으로 time series 컬렉션을 인덱싱합니다. 시계열 버킷에는 공유 metaField 값이 있는 문서가 포함되며, 서로 가까운 timeField 값을 기준으로 정렬됩니다. MongoDB는 metaField를 제외한 모든 필드의 최소값과 최대값을 인덱싱합니다. 개별 문서 대신 버킷을 인덱싱하면 인덱스 크기가 줄어들고 쿼리 효율성이 향상됩니다.

쿼리 성능을 향상시키기 위해 time series 컬렉션 의 모든 필드 에 세컨더리 인덱스를 수동으로 추가 할 수 있습니다.

기본적으로 MongoDB는 버킷 시간을 기반으로 time series 컬렉션을 클러스터링합니다.

버전 6.3에 추가.

MongoDB 6 부터 시작.3, MongoDB는 시계열 컬렉션의 metaField와 timeField 모두에 기본 복합 인덱스 를 생성합니다. MongoDB는 이 인덱스를 사용하여 쿼리 성능과 속도를 개선합니다.

timeField, metaField 또는 측정 필드에 복합 인덱스 를 추가할 수 있습니다.

버전 6.0에 추가.

MongoDB 부터 6 시작.0, time series 컬렉션의 부분 인덱스$geoWithin 함께 , 및 $or $in 연산자를 사용할 수 있습니다.

metaField 및 timeField에는 부분 인덱스 를 생성할 수 없습니다.

버전 6.3에 추가.

MongoDB 6 부터 시작.3, metaField에만 의존하는 partialFilterExpression 를 사용하여 TTL 인덱스를 만들 수 있습니다. 6 이전 버전.3 expireAfterSeconds 매개 변수를 기반으로 하는 TTL 인덱스만 만들 수 있습니다.

Time Series 컬렉션에서 expireAfterSeconds 옵션을 사용하여 문서를 만료하지 않는 경우 부분 TTL 인덱스를 생성하면 일치하는 문서에 대해서만 만료 시간이 설정됩니다. 컬렉션이 모든 문서에 expireAfterSeconds 를 사용하는 경우 부분 TTL 인덱스를 사용하여 일치하는 문서를 더 빨리 만료할 수 있습니다.

MongoDB는 time series 컬렉션에서 다음과 같은 인덱스 유형을 허용하지 않습니다.

metaField에 희소 인덱스를 만들 수 없습니다.

  • 필터링 및 동등성을 위해 metaField 인덱스를 사용합니다.

  • 범위 쿼리에는 timeField 및 기타 인덱싱된 필드를 사용합니다.

  • 일반 인덱싱 전략은 time series 컬렉션에도 적용됩니다. 자세한 내용은 인덱싱 전략을 참조하세요.

자세한 내용 및 예시 는 Time Series 컬렉션에 보조 인덱스 추가를 참조하세요.

돌아가기

구체화된 뷰 빌드