MongoDB 인덱스 제한 사항
추가 오버헤드
각 인덱스는 일정한 저장 공간을 차지하며, 삽입, 업데이트, 삭제 작업 중에도 인덱스가 작동해야 합니다. 따라서 컬렉션을 거의 읽지 않는 경우에는 인덱스를 사용하지 않는 것이 좋습니다.
메모리(RAM) 사용량
인덱스는 메모리(RAM)에 저장되므로 인덱스의 크기가 메모리 한도를 초과하지 않도록 주의해야 합니다.
인덱스 크기가 메모리 제한보다 큰 경우 MongoDB는 일부 인덱스를 삭제하므로 성능 저하가 발생합니다.
쿼리 제한
다음 쿼리에서는 인덱스를 사용할 수 없습니다.
정규식 및 비연산자(예: $nin) , $ 아님 등
$mod 등의 산술 연산자
$where 절
따라서 명령문에 인덱스가 사용되었는지 확인하는 것이 좋은 습관이며, explain을 사용하여 확인할 수 있습니다.
인덱스 키 제한
버전 2.6부터 기존 인덱스 필드의 값이 인덱스 키 제한을 초과하는 경우 MongoDB에서는 인덱스가 생성되지 않습니다.
삽입된 문서가 인덱스 키 제한을 초과합니다.
MongoDB는 인덱스 필드 값이 인덱스 키 제한을 초과하는 경우 문서를 인덱스 컬렉션으로 변환하지 않습니다. mongorestore 및 mongoimport 도구와 유사합니다.
최대 범위
컬렉션의 인덱스는 64를 초과할 수 없습니다.
인덱스 이름의 길이는 64를 초과할 수 없습니다. 125자 초과
복합 인덱스는 최대 31개의 필드를 가질 수 있습니다