스키마 개선
스키마는 컬렉션, 인덱스 및 문서 를 포함하는 클러스터의 아키텍처입니다. 개발 프로세스 초기에 스키마 설계를 고려하세요.
서버리스 인스턴스의 경우 Schema Advisor 에 액세스 할 수 없습니다.
스키마 설계 패턴
자주 사용되는 디자인 패턴을 기반으로 스키마를 모델링할 수 있습니다. 패턴으로 구축 블로그 시리즈에서는 자주 사용되는 다음과 같은 디자인 패턴에 대해 설명합니다.
배열이 잘 작동하는 상황에 대해 알아보려면 다음 디자인 패턴을 참조하세요.
각 영화가 일부 국가에서만 개봉하는 영화 데이터와 같이 고유한 속성 조합이 있는 데이터를 처리하려면 속성 패턴을 사용합니다.
버킷 패턴은 시간 범위 데이터와 같이 긴밀하게 그룹화되거나 순차적인 데이터를 처리할 때 사용합니다.
다형성 패턴을 사용하면 여러 스포츠 종목의 선수 기록과 같이 동일한 컬렉션에서 서로 다른 형태의 문서를 처리할 수 있습니다.
작업 세트의 문서를 관리 가능한 크기로 유지하기 위한 전략에 대해 알아보려면 다음 패턴을 참조하세요.
확장 참조 패턴을 사용해 자주 읽는 데이터의 일부를 큰 문서에서 작은 문서로 복제할 수 있습니다.
서브셋 패턴을 사용하면 배열 필드가 큰 문서의 크기를 줄일 수 있습니다.
표준 컬렉션에서 소수의 대용량 문서를 처리하려면 이상값 패턴을 사용하세요.
유연한 데이터 모델을 스키마에 통합하는 방법을 알아보려면 MongoDB.live 2020의 다음 프레젠테이션을 참조하세요:
MongoDB의엔티티 관계에 대해 알아보고, MongoDB를 사용한 데이터 모델링으로 구현한 예시를 살펴보세요.
고급 스키마 설계 패턴을 통해 스키마에 통합할 수 있는 고급 데이터 모델링 디자인 패턴에 대해 알아보세요.
스키마 추천
Atlas는 일반적인 스키마 설계 문제를 감지하는 두 가지 방법을 제공하며 MongoDB의 권장사항을 따르는 수정을 제안합니다.
Performance Advisor 는 가장 활동적인 collection과 collection에서 느리게 실행되는 쿼리로 문서를 샘플링하여 클러스터 에 대한 전체적인 스키마 권장 사항을 제공합니다.
Atlas UI 는 해당 컬렉션 의 문서를 샘플링하여 특정 컬렉션 에 대한 스키마 제안을 제공합니다.
Performance Advisor 또는 데이터 탐색기에서 제공되는 추천을 적용하는 방법에 대해 자세히 알아보려면 다음 페이지를 참조하세요.
스키마 개선 | 추천하는 이유 |
---|---|
데이터에 대해 너무 많은 | |
많은 요소를 가진 배열 필드가 문서에 포함되어 있어 쿼리 성능이 저하될 수 있습니다. | |
컬렉션에 디스크 공간을 소모하고 쓰기 (write) 성능을 저하시킬 수 있는 불필요한 인덱스가 있습니다. | |
문서가 너무 커서 자주 사용하는 쿼리의 성능이 저하될 수 있습니다. | |
데이터베이스에 컬렉션 수가 너무 많아서 불필요한 디스크 공간 사용량이 발생할 수 있습니다. | |
비효율적인 정규식 일치에 의존하는 쿼리를 실행하고 있습니다. $ 검색 집계 파이프라인 단계를 사용하는 Atlas Search 쿼리 를 활용하세요. |
스키마 추천의 제한 사항
컬렉션에 대한 스키마 추천은 부분적으로 해당 컬렉션의 문서를 무작위로 샘플링하여 이루어집니다. 이 샘플링은 스키마가 분석될 때마다 수행되므로 동일한 컬렉션에 대해 다른 시간에 다른 추천이 표시될 수 있습니다.
Performance Advisor 는 느린 쿼리를 모니터링하여 특정 스키마 문제, 즉 너무 많은
$lookup
작업 및 대소문자를 구분하는 정규식 쿼리에 인덱스 를 활용하지 않는 것을 인식합니다. 클러스터 가 장기 실행 쿼리를 지속적으로 수신하지 않는 경우, Performance Advisor 는 해당 클러스터 에 대한 모든 잠재적 개선 사항을 제안하지 않거나 개선 사항이 제안되는 모든 이유를 표시하지 않을 수 있습니다.Performance Advisor는
top
명령의 출력을 기반으로 가장 활성화된 20개의 컬렉션을 분석합니다. 특정 컬렉션에 대한 추천을 보려면 Atlas UI에서 해당 컬렉션을 확인하세요.Performance Advisor 와 Atlas UI 모두 time-series 컬렉션에 대한 스키마 제안을 제공하지 않습니다.
Performance Advisor 에서 스키마 제안 보기
AtlasGo Atlas 에서 프로젝트 의 Clusters 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
아직 표시되지 않은 경우 사이드바에서 Clusters를 클릭합니다.
Clusters(클러스터) 페이지가 표시됩니다.