MongoDB 인덱스/RAM 관계
새로운 프로젝트에 MongoDB를 도입하려고 하는데 확장성이 아닌 유연성을 위해 선택했기 때문에 한 시스템에서 실행할 예정입니다.설명서와 웹 게시물에서 모든 인덱스가 RAM에 있다는 것을 계속 읽습니다.사용 가능한 RAM 크기보다 인덱스가 더 클 수 있기 때문에 이는 이해할 수 없습니다.
인덱스/RAM 관계 및 개별 인덱스와 모든 인덱스가 사용 가능한 RAM 크기를 초과할 경우 발생하는 상황에 대한 통찰력을 공유할 수 있는 사람이 있습니까?
MongoDB는 RAM에 인덱스의 가능한 부분을 보관합니다.LRU 기준으로 교체됩니다.흔히 "작업 세트"를 메모리에 유지해야 한다는 문서를 볼 수 있습니다. 실제로 액세스하는 인덱스 부분이 메모리에 맞으면 문제가 없습니다.
항상 RAM에 이상적으로 상주해야 하는 것은 작업 세트 크기와 MongoDB의 인덱스입니다. 즉, 사용 가능한 RAM의 양은 작업 세트 크기와 인덱스 크기에 동일한 컴퓨터에서 실행되는 나머지 OS(운영 체제) 및 기타 소프트웨어가 필요로 하는 크기를 더한 것이 이상적입니다.사용 가능한 RAM이 이보다 작으면 LRU링이 발생하므로 속도가 크게 느려질 수 있습니다.인덱스에서 btree 버킷은 개별 인덱스 키가 아닌 캐시됩니다. 즉, 과거 데이터를 포함하여 인덱스에 키가 균일하게 분산되어 있는 경우 RAM에 복합 인덱스가 제 시간에 있을 때와 비교하여 더 많은 인덱스가 필요할 수 있습니다.후자의 경우 동일한 btree 버킷의 키는 일반적으로 동일한 시대의 키이므로 이 주의 사항은 발생하지 않습니다.또한 BSON의 필드 이름은 레코드에 저장되므로(인덱스는 저장되지 않음) 메모리 부담이 있는 경우에는 짧게 유지해야 합니다.
MongoDB의 현재 가상 메모리 사용(물론 RAM에 관한 것이기도 함)에 관심이 있는 사람은 mongod의 상태를 볼 수 있습니다.
@http://www.markus-gattol.name/ws/mongodb.html#sec7 참조
언급URL : https://stackoverflow.com/questions/2811299/mongodb-index-ram-relationship
'programing' 카테고리의 다른 글
mongodb 셸에서 각에 대한 업데이트 인 (0) | 2023.07.10 |
---|---|
csv 파일에서 데이터를 읽고 데이터베이스에 저장하는 방법 ? Spring Boot (0) | 2023.07.10 |
mac에서 mongodb의 로그 파일은 어디에 있습니까? (0) | 2023.07.10 |
노드 하위 프로세스에 큰 어레이 전달 (0) | 2023.07.10 |
첫 번째 숫자가 0 vba인 경우에도 숫자를 두 자리로 형식 지정 (0) | 2023.07.10 |