이것은 기본적인 질문이지만 매우 중요합니다.MongoDB 캐시 시스템을 이해하십시오
공식 문서에서 우리는
MongoDB를가 RAM에 가장 최근에 사용 된 모든 데이터를 계속 읽을 수 있습니다. 쿼리에 대한 인덱스를 만들고 작업 데이터 세트가 RAM에 맞으면 MongoDB는 메모리의 모든 쿼리를 제공합니다. 당신이 당신의 쿼리에 인덱스를 생성하고 사용자의 작업 데이터 세트가 RAM에 들어가는 경우
내가 이해 모르겠습니다 부분은
여기에 "인덱스"무슨 뜻
입니다 ? 내가 모델을 업데이트 할 경우
는 예를 들어, 나는 그것을를 업데이트하기 때문에,이 메모리에서 올 것이다, 그래서 그것은 RAM 지금,하지만이 내 마음에 아주 명확하지 않다, 그것을 쿼리합니다.
우리는 어떻게 우리가 쿼리 datas 메모리에서 만들거나하지 않을 것이라는 확신 할 수
? 나는 MongoDB가 무료 메모리를 사용하여 순간적으로 무료 메모리에 대한 데이터를 캐시하지만 누군가가 전역 적 행동을 더 설명 할 수있을 것이라고 이해한다.하는 경우 MongoDB를 캐시 시스템을 신뢰하는 것보다 datas를 저장하는 우리의 노드 서버에서 변수를 사용하는 것이 더 좋을 수 있을까?
어떻게 전 세계적으로 엄청난 트래픽에 MongoDB를를 사용하는 조언을합니까?
는 "이 각 컬렉션 페이지를 메모리 매핑"그것은 그들이 두 개의 다른 것들, virutal 메모리에 물건 RAM하지 매핑하고이 사람들이 그런 일반적인 실수는, MongoDB를이입니다 in-memory 데이터베이스가 아닙니다! – Sammaye
@Sammaye 가상 또는 실제 여부에 관계없이 메모리 주소에 매핑됩니다. Out-of-Core 주소가 참조되면 페이지 오류가 발생하고 해당 디스크 페이지가 실제 메모리로 이동됩니다. MongoDB는 서버가 가지고있는 모든 물리적 메모리를 거의 다 빨아 들일 것입니다 (OS 자체와 다른 프로세스에 대해서만 조금 남았습니다). MongoDB를 실행하려면 사용 가능한 실제 메모리가 데이터베이스 크기를 초과해야합니다. – Curt
OS가 허용하기 때문에 메모리를 빨아 들일 것입니다. 그러나 작업 세트가 RAM에 저장되는 경우에만 작업 세트가 작다면 실제로 MongoDB는 데이터 크기보다 훨씬 작은 소량을 사용하게됩니다. – Sammaye