mongoDB 컬렉션의 모든 문서에는 정수 배열이 있습니다. 각 정수마다 32 비트 이상을 필요로하지 않으며 정수 배열의 길이는 각 문서에서 동일합니다.mongoDB는 많은 정수 배열을 저장하는 데 비효율적입니까?
내 응용 프로그램의 클라이언트는 배열 내의 개별 필드를 자주 업데이트합니다.
256 개 정수 배열을 가진 5000-10000 건의 문서가 있으면 mongo db 낭비 공간이 생깁니다. 내 배열의 내용을 정수가 아닌 데이터 유형으로 변경하거나 배열의 길이를 변경해야하기 때문입니다 ?
mongoDB의 디자인으로 내 배열 내의 개별 정수를 기존 관계형 데이터베이스와 비교할 때 매우 비효율적으로 업데이트 할 수 있습니까? 그것은 나를 정수가 아닌 데이터 유형 또는 내 배열의 내용을 변경하기 위해 준비해야하기 때문 http://docs.mongodb.org/manual/applications/update/#update-arrays
수정하면 문서가 커져서 이전의 다른 공간에서 이동해야합니까? – Sammaye
@Sammaye no. 모든 단일 배열은 항상 다른 모든 배열과 정확히 동일한 길이입니다. 이 질문의 예제에서 각 배열의 길이는 256입니다. 배열과 다른 필드를 포함하여 문서의 전체 크기도 변경되지 않습니다. –
업데이트의 가장 큰 문제점은 이동 문제입니다. 이러한 문제가 발생하지 않는다고 생각하면 하위 문서에 두드리는 것이 좋을 것입니다. 특히 배열의 256 개 요소이므로 여기서는 좋은 성능을보아야합니다. 메모리 연산자에로드해야합니다. $ pull 등 매우 빠름 – Sammaye