익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
몽고DB
편집하기 (부분)
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
고급
특수 문자
도움말
문단 제목
2단계
3단계
4단계
5단계
형식
넣기
라틴 문자
확장 라틴 문자
IPA 문자
기호
그리스 문자
그리스어 확장
키릴 문자
아랍 문자
아랍어 확장
히브리 문자
뱅골어
타밀어
텔루구어 문자
싱할라 문자
데바나가리어
구자라트 문자
태국어
라오어
크메르어
캐나다 원주민 언어
룬 문자
Á
á
À
à
Â
â
Ä
ä
Ã
ã
Ǎ
ǎ
Ā
ā
Ă
ă
Ą
ą
Å
å
Ć
ć
Ĉ
ĉ
Ç
ç
Č
č
Ċ
ċ
Đ
đ
Ď
ď
É
é
È
è
Ê
ê
Ë
ë
Ě
ě
Ē
ē
Ĕ
ĕ
Ė
ė
Ę
ę
Ĝ
ĝ
Ģ
ģ
Ğ
ğ
Ġ
ġ
Ĥ
ĥ
Ħ
ħ
Í
í
Ì
ì
Î
î
Ï
ï
Ĩ
ĩ
Ǐ
ǐ
Ī
ī
Ĭ
ĭ
İ
ı
Į
į
Ĵ
ĵ
Ķ
ķ
Ĺ
ĺ
Ļ
ļ
Ľ
ľ
Ł
ł
Ń
ń
Ñ
ñ
Ņ
ņ
Ň
ň
Ó
ó
Ò
ò
Ô
ô
Ö
ö
Õ
õ
Ǒ
ǒ
Ō
ō
Ŏ
ŏ
Ǫ
ǫ
Ő
ő
Ŕ
ŕ
Ŗ
ŗ
Ř
ř
Ś
ś
Ŝ
ŝ
Ş
ş
Š
š
Ș
ș
Ț
ț
Ť
ť
Ú
ú
Ù
ù
Û
û
Ü
ü
Ũ
ũ
Ů
ů
Ǔ
ǔ
Ū
ū
ǖ
ǘ
ǚ
ǜ
Ŭ
ŭ
Ų
ų
Ű
ű
Ŵ
ŵ
Ý
ý
Ŷ
ŷ
Ÿ
ÿ
Ȳ
ȳ
Ź
ź
Ž
ž
Ż
ż
Æ
æ
Ǣ
ǣ
Ø
ø
Œ
œ
ß
Ð
ð
Þ
þ
Ə
ə
서식 지정
링크
문단 제목
목록
파일
각주
토론
설명
입력하는 내용
문서에 나오는 결과
기울임꼴
''기울인 글씨''
기울인 글씨
굵게
'''굵은 글씨'''
굵은 글씨
굵고 기울인 글씨
'''''굵고 기울인 글씨'''''
굵고 기울인 글씨
== 샤딩 == MongoDB의 샤딩은 데이터베이스가 커지면서 한 서버에 데이터를 모두 저장하기 어려운 경우, 데이터를 여러 서버(샤드)로 분산 저장하는 방법이다. 샤딩을 통해 MongoDB는 수평적 확장을 가능하게 하며, 대규모 데이터를 처리하는 애플리케이션에서 성능을 유지하는 데 유리하다. 예를 들어, 대규모 온라인 상거래 시스템에서 `order_id` 필드를 샤드 키로 설정해 주문 데이터를 분산시킬 수 있다. 고객이 주문을 할 때, Mongos가 적절한 샤드에 주문 데이터를 저장하고, 나중에 그 데이터를 조회할 때도 빠르게 해당 샤드로 접근해 결과를 가져올 수 있다. MongoDB의 샤딩은 대규모 데이터를 처리하는 시스템에서 필수적인 기능이지만, 샤드 키와 클러스터 구성을 잘못 설정하면 성능이 떨어질 수 있으니 신중한 설계가 필요하다. === 샤딩의 주요 개념 === * '''샤드(Shard)''' ** 각 샤드는 데이터의 일부를 저장하는 독립적인 MongoDB 서버다. 샤드는 서로 다른 데이터를 저장하며, 각 샤드는 자신이 처리할 데이터에만 책임이 있다. 이는 수평적 확장을 가능하게 하며, 데이터가 늘어남에 따라 새로운 샤드를 추가할 수 있다. * '''샤드 키(Shard Key)''' ** 데이터를 여러 샤드에 나눠 저장하기 위해서는 기준이 필요하다. 이 기준이 되는 것이 바로 '''샤드 키'''이다. 샤드 키는 컬렉션 내의 특정 필드로, MongoDB는 이 키를 기준으로 데이터를 분산시킨다. 샤드 키를 잘못 선택하면 데이터가 고르게 분산되지 않아 성능 저하가 발생할 수 있다. *** 예를 들어, `user_id` 같은 필드를 샤드 키로 사용하면 사용자가 고르게 분산될 수 있지만, 날짜 필드를 샤드 키로 사용하면 특정 날짜에 쏠림 현상이 발생할 수 있다. * '''Config 서버''' ** 샤딩을 관리하는 데 필요한 메타데이터(샤드 구성, 샤드 키 등)를 저장하고, 클러스터의 상태를 관리하는 서버다. Config 서버는 샤드의 위치와 데이터를 어떻게 분배할지에 대한 정보를 저장하며, 클러스터에 필수적인 요소다. * '''몽고스(Mongos)''' ** Mongos는 샤드 클러스터에서의 라우터 역할을 한다. 클라이언트는 Mongos를 통해 데이터베이스에 접근하며, Mongos는 적절한 샤드로 요청을 라우팅한다. 클라이언트는 MongoDB가 샤딩되어 있다는 것을 알 필요 없이, Mongos가 데이터 요청을 각 샤드에 전달하고 결과를 취합한다. === 샤딩의 장점 === * '''수평적 확장''' ** 데이터나 트래픽이 많아질 경우, 더 많은 샤드를 추가하여 데이터베이스의 크기나 처리 능력을 확장할 수 있다. 이는 서버 성능을 개선할 수 있는 경제적 방법이다. * '''성능 향상''' ** 여러 서버에 데이터가 분산되므로, 한 서버에서 처리할 데이터 양이 줄어들어 성능이 향상된다. 샤딩을 통해 읽기/쓰기 작업이 병렬로 처리되며, 큰 쿼리도 여러 샤드에 분산되어 더 빠르게 처리될 수 있다. * '''높은 가용성''' ** 샤딩과 복제를 함께 사용할 경우, 데이터 손실 위험이 줄어들고 가용성이 향상된다. 샤드 중 하나에 장애가 발생해도 다른 샤드들이 계속 작동할 수 있다. === 샤드 키 선택 시 고려 사항 === * '''균형된 데이터 분배''' ** 샤드 키는 데이터가 고르게 분산될 수 있도록 설계해야 한다. 특정 샤드에 데이터가 몰리면 그 샤드가 과부하가 걸리며 성능이 저하된다. * '''쿼리 효율성''' ** 샤드 키는 자주 사용되는 쿼리에 영향을 줄 수 있다. 예를 들어, 특정 필드에 대해 자주 검색하는 경우, 그 필드를 샤드 키로 사용하면 검색 속도가 빨라질 수 있다. 그러나 적절하지 않은 샤드 키는 쿼리 성능을 저하시킬 수 있다.
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록