도메인 정보가 들어있는 문서가있는 domain
컬렉션이 있습니다. 그 중 일부는 역사적인 whois 레코드입니다.이 레코드는 0 개 이상일 수 있으며 문서의 대부분의 공간을 차지합니다.MongoDB : 문서를 저장하면 전체 문서가 다시 작성됩니까?
전체 문서를로드하는 경우 작은 숫자 (숫자 필드 업데이트)를 변경하고 save()
메서드를 사용하면 전체 문서가 디스크에 플러시되거나 변경된 BSON 만 업데이트됩니까? 궁극적으로 내 질문은 내가 update()
의 코드를 I/O를 절약하기 위해 복잡하게해야합니까 아니면 그냥 save()
을 사용해야합니까?
이것은 순전히 게으름으로 인한 것이 아니며, 문서 전체를 읽은 후에 문서를 수정/처리하는 일련의 단계를 거치며 변경이 이루어지면 전체 문서가 저장됩니다. 그러나 문서를 저장하는 비용이 높으면 어쩌면 다른 방식으로 생각해야 할 것입니다 ...
도움이 되긴하지만 실제로 제 질문에는 답하지 않습니다. 10MB BSON 문서가 있다면, 한 속성을 변경하고 전체 10MB를 다시 쓰게 될 것입니다. 문서를 재배치 할 필요가 없다고 가정합니다. –
MongoDB가 메모리 매핑 파일을 사용한다는 사실에 대한 자세한 설명은 * "쓰여진 전체 내용"입니다. 단일 속성 만 업데이트하면 이상적으로 해당 바이트 만 디스크로 플러시됩니다. 그러나 BSON이 충분히 바뀌면 디스크에 모든 것을 플러시 할 수 있습니다. –
@GatesVP : 전체 페이지가 더럽다고 표시되어 플러시되어야한다고 생각했습니다. –