2012-06-01 4 views
0

그래서 중첩 된 해시에 일부 데이터가 포함 된 매우 큰 메트릭 집합 (15GB 및 증가)이 있습니다. 좋아요 :mongodb에서 중첩 해시의 성능에 미치는 영향은 무엇입니까?

{ 
    _id: 'abc0000', 
    type: 'foo', 
    data: { a: 20, b: 30, c: 3 } 
}, 
... more data following this schema... 
{ 
    _id: 'abc5000', 
    type: 'bar' 
    data: { a: 1, b: 2, c: 4, d: 10 } 
} 

중첩 해시에 대한 쿼리를 실행할 때 성능에 미치는 영향은 무엇입니까? 해시 내부의 데이터를 인덱싱 할 수 없거나 색인을 생성하는 것이 무의미합니다.

난 항상 당신이 중첩 된 해시의 속성에 대한 인덱스를 만들 수 있습니다 ... 플랫 스타일 data_a, data_b 등으로

+1

이 쿼리에는 기본 키가 포함되어 있습니까 아니면 모든 문서를 쿼리합니까? –

+0

나는 다양한 데이터를 쿼리하고 때로는 데이터를 집계 할 것이다. 쓰기가 완료되면 몽고는 완료 될 때까지 차단합니까? – WarmWaffles

답변

1

의 데이터를 개혁 할 수 있습니다. 자세한 내용은 Indexing with dot notation을 참조하십시오. 필요한 경우 복합 색인을 만들 수도 있지만 caveats with parallel arrays에주의하십시오. 기본적으로 복합 인덱스를 만들면 인덱싱 된 값 중 하나만 배열 될 수 있지만 영향을 미치지 않아야합니다 (게시 된 스키마에서 판단).

data.a, data.b 또는 data.a, data.c에 필요에 따라 색인을 생성 할 수 있습니다.

관련 문제