문서 메뉴
문서 홈
/
MongoDB Atlas
/

스키마 개선

이 페이지의 내용

  • 스키마 설계 패턴
  • 스키마 추천
  • 스키마 제안의 제한 사항

스키마는 컬렉션, 인덱스문서 를 포함하는 클러스터의 아키텍처입니다. 개발 프로세스 초기에 스키마 설계를 고려하세요.

참고

서버리스 인스턴스

서버리스 인스턴스의 경우 Schema Advisor 에 액세스할 수 없습니다.

자주 사용되는 디자인 패턴을 기반으로 스키마를 모델링할 수 있습니다. 패턴으로 구축하기 블로그 시리즈에서는 자주 사용되는 다음과 같은 디자인 패턴에 대해 설명합니다.

배열이 잘 작동하는 상황에 대해 알아보려면 다음 디자인 패턴을 참조하세요.

  • 각 영화가 일부 국가에서 개봉하는 영화 데이터와 같이 고유한 속성 조합이 있는 데이터를 처리하려면 속성 패턴 을 사용합니다.

  • 버킷 패턴 을 사용하면 시간 범위 데이터와 같이 밀접하게 그룹화되거나 순차적인 데이터를 처리할 수 있습니다.

  • 여러 스포츠의 선수 기록과 같이 동일한 컬렉션에서 서로 다른 형태의 문서를 처리하려면 다형성 패턴 을 사용합니다.

작업 세트의 문서를 관리 가능한 크기로 유지하기 위한 전략에 대해 알아보려면 다음 패턴을 참조하세요.

  • 확장 참조 패턴 을 사용하면 자주 읽는 데이터 부분을 큰 문서에서 작은 문서로 복제할 수 있습니다.

  • 하위 세트 패턴 을 사용하여 배열 필드가 큰 문서의 크기를 줄일 수 있습니다.

  • 표준 컬렉션에서 몇 개의 큰 문서를 처리하려면 이상값 패턴 을 사용합니다.

유연한 데이터 모델을 스키마에 통합하는 방법을 알아보려면 MongoDB.live 2020의 다음 프레젠테이션을 참조하세요:

Atlas는 일반적인 스키마 설계 문제를 감지하는 두 가지 방법을 제공하며 MongoDB의 권장사항을 따르는 수정을 제안합니다.

  • Performance Advisor 는 가장 활동적인 컬렉션과 컬렉션에서 문서를 느리게 실행하는 쿼리로 샘플링하여 클러스터에 대한 전체적인 스키마 권장 사항을 제공합니다.

  • Atlas UI 는 해당 컬렉션의 문서를 샘플링하여 특정 컬렉션에 대한 스키마 제안을 제공합니다.

Performance Advisor 또는 데이터 탐색기에서 제공되는 제안 사항을 적용하는 방법에 대해 자세히 알아보려면 다음 페이지를 참조하세요.

스키마 개선
제안 이유
데이터에 대해 너무 많은 $lookup 작업을 실행하고 있습니다. MongoDB의 풍부한 스키마 모델을 활용하여 관련 데이터를 단일 컬렉션에 포함할 수 있습니다.
문서에 요소가 많은 배열 필드가 포함되어 있어 쿼리 성능이 저하될 수 있습니다.
컬렉션에 불필요한 인덱스가 있어 디스크 공간을 소비하고 쓰기 성능이 저하될 수 있습니다.
문서가 너무 크면 가장 빈번한 쿼리의 성능이 저하될 수 있습니다.
데이터베이스의 컬렉션 수가 너무 많아 불필요한 디스크 공간 사용량이 발생할 수 있습니다.
비효율적인 정규식 일치에 의존하는 쿼리를 실행하고 있습니다. $search 집계 파이프라인 단계를 사용하는 Atlas Search 쿼리 를 활용하세요.
  • 컬렉션에 대한 스키마 제안은 해당 컬렉션에서 문서를 무작위로 샘플링하여 부분적으로 결정됩니다. 이 샘플링은 스키마가 분석될 때마다 수행되므로 동일한 컬렉션에 대해 다른 시간에 다른 제안이 표시될 수 있습니다.

  • Performance Advisor 는 느린 쿼리를 모니터링하여 특정 스키마 문제, 즉 너무 많은 $lookup 작업 및 대소문자를 구분하는 정규식 쿼리에 인덱스를 활용하지 않는 것을 인식합니다. 클러스터가 장기 실행 쿼리를 지속적으로 수신하지 않는 경우 Performance Advisor는 해당 클러스터에 대한 모든 잠재적 개선 사항을 제안하지 않거나 개선 사항이 제안되는 모든 이유를 표시하지 않을 수 있습니다.

  • Performance Advisortop 명령의 출력을 기반으로 가장 활동적인 20 컬렉션을 분석합니다. 특정 컬렉션에 대한 추천을 보려면 Atlas UI에서 해당 컬렉션을 확인하세요.

  • Performance AdvisorAtlas UI 모두 Time Series 컬렉션에 대한 스키마 제안을 제공하지 않습니다.

← 검색 성능 향상을 위해 Atlas Search로 $text 쿼리 업데이트하기