MongoDB- Index

겔로그·2022년 12월 6일
0
post-thumbnail

오늘은 MongoDB Index에 대해 알아보는 시간을 가져보겠습니다. Index의 개념부터 차근차근 알아가 볼까요? 이번 내용은 MongoDB 프로그래밍 8강 MongoDB의 Index 기능 배우기 | T아카데미를 듣고 정리한 내용입니다.

Index

  • index란 디비의 검색을 빠르게 하기 위해 미리 데이터의 순서를 정리해두는 과정
  • MongoDB는 고정된 스키마는 없으나 원하는 데이터 필드를 인덱스로 지정하여 검색 결과를 빠르게 하는 것이 가능합니다.
  • MongoDB는 B-트리 구조로 index를 구현합니다.
  • 다양한 index를 지원합니다.

주의사항

  • Mongodb는 기동시 모든 데이터 파일을 메모리에 매핑합니다.
    • 모든 도큐먼트, 컬렉션, 인덱스를 포함하는 모든 데이터 파일이 페이지(page)라고 부르는 4kb정도의 청크 단위로 운영체제에 의해 RAM에 적재합니다.
    • 디스크 용량이 작을 경우 page fault가 자주 발생해 thrashing 현상이 발생합니다.
    • 따라서 메모리에 인덱스가 위치할 수 있도록 최소화 될 필요가 있습니다.
  • 적당한 index가 설정되어있지 않을 경우 질의 조건을 만족할때까지 모든 도큐먼트를 순차적으로 스캔합니다.
    • 한 쿼리당 하나의 index만 유효합니다.
    • _id는 기본적으로 생성되는 index로 도큐먼트를 가르키는 유일한 키값으로 사용

효율성

  • 모든 index에는 유지비가 소요됩니다.
  • 주로 읽기 위주의 어플리케이션에서 유용하게 사용됩니다.
  • 읽기보다 쓰기 작업이 많다면 어느정도 Index를 포기하거나 Index를 위한 컬렉션을 따로 운영해야 합니다.

사용법

인덱스 생성

ensureIndex()

인덱스 확인

getIndexes()

인덱스 삭제

dropIndex()

Index 먹었는지 확인

explain()

profile
Gelog 나쁜 것만 드려요~

0개의 댓글

관련 채용 정보