복붙노트

[MONGODB] 증가하는 데이터 구조와 MongoDB의 성능

MONGODB

증가하는 데이터 구조와 MongoDB의 성능

하자 우리가 새로운 시스템을 설계하고 기본 데이터베이스로하여 MongoDB를 사용하기로 결정했다고 밝혔습니다. 데이터 스키마는 [증가] 의견 블로그와 매우 유사하다.

책 "MongoDB를 개발자", 팁 # 6 : 마 언 바운드 성장이 필드를 포함하지, 그것은 배열의 끝에 지속적으로 추가 데이터에 비효율적이다 (그러나 또한 의견이 "이상한 가장자리 경우"임을 암시 말한다 ).

하자 우리의 새로운 시스템은 블로그에서 그 "설명"과 같이 말한다 - 동적으로 모든 시간을 증가뿐만 아니라, 때로는 변경하거나 일부 존재가 삭제.

그래서,이 목적을 제공 할 수 MongoDB를이, 어떤 다른 대안 데이터베이스 (수평 확장 데이터베이스 여야합니다)를 사용하여 성능 문제가있을 수 있음을 인식 한? (우리는 우리의 기본 데이터베이스로하여 MongoDB를 사용하여 상관 없어,하지만 다른 데이터베이스에 "의견"을 구분합니다. 옵션을 사용할 수 있습니까?

노트:

지속적으로 증가하지만 때로는 수정 또는 삭제 - - 데이터 유형은 우리의 "의견"데이터 구조의 설명에 맞게 같은 해시를 가진의 레디 스 기능을하지만 우리는 순수 메모리 데이터베이스가 필요하지 않습니다는 (우리는 너무 많이 할애하지 않으 데이터가 디스크에 지속 할 수 RAM)은 - 그렇지 않으면이 우리의 문제에 적합 할 것

무엇 CouchDB를 사용에 대한? 우리는이 제품에 대해 조사하지 않습니다. 어떻게 성장하는 데이터 구조와 수행합니까?

해결법

  1. ==============================

    1.틸로 위의 말에 추가하려면, "언 바운드 성장을 포함하지 필드"의 이유는 그것에 할당 된 현재의 공간을 초과하는 경우 문서 크기 확장이 유형의 문서를 이동해야하는 MongoDB를가 발생할 수 있기 때문이다. 당신은 문서의 패딩 요소 섹션에서 이것에 대해 자세한 내용을보실 수 있습니다.

    틸로 위의 말에 추가하려면, "언 바운드 성장을 포함하지 필드"의 이유는 그것에 할당 된 현재의 공간을 초과하는 경우 문서 크기 확장이 유형의 문서를 이동해야하는 MongoDB를가 발생할 수 있기 때문이다. 당신은 문서의 패딩 요소 섹션에서 이것에 대해 자세한 내용을보실 수 있습니다.

    이동의 이러한 유형은 자주 발생 특히, 상대적으로 비싸다. 따라서 (가장 등 X 최근) 및 사전 채우는 코멘트 추가로 인한 이동을 줄이기 위해 해당 문서 필드 (기본적으로 수동 패딩을) 어쩌면 / 변경 할 수있다 메인 컬렉션의 상당 코멘트 (본질적 성장을 경계) 크기를 제한 잘 당신을 위해 가치.

  2. ==============================

    2.당신은 MongoDB를 고수하지만, 주 문서에 모든 의견을 포함하지만, 단지 가장 최근의 것 (수에 의해 제한)되지 및 분리 수거의 모든에게 휴식을 유지할 수 있습니다.

    당신은 MongoDB를 고수하지만, 주 문서에 모든 의견을 포함하지만, 단지 가장 최근의 것 (수에 의해 제한)되지 및 분리 수거의 모든에게 휴식을 유지할 수 있습니다.

  3. ==============================

    3.그것이 너희들을 위해 좋은 일을 단지 다른 문서의 하위 요소, 즉 페이지 (블로그 예를 들어 계속) 반대 별도의 수집 광고에서 "의견"을 유지하는 것처럼 몽고 소리.

    그것이 너희들을 위해 좋은 일을 단지 다른 문서의 하위 요소, 즉 페이지 (블로그 예를 들어 계속) 반대 별도의 수집 광고에서 "의견"을 유지하는 것처럼 몽고 소리.

    몽고의 성능에 관해서는, 한 그 인덱스가 램에 들어갈 수있는 당신은 괜찮을 것이다.

  4. ==============================

    4.귀하의 주요 문제는 다음 아마 당신이 순차적으로 업데이트 할 수 없습니다 의미 다른 메모리 페이지에서 데이터를 업데이트 및 삭제를 만들고 있다는 것입니다. MongoDB를로 전환하는 것은 아무것도 해결하지 않도록이 경우, 많은 데이터베이스는 같은 문제가 있습니다.

    귀하의 주요 문제는 다음 아마 당신이 순차적으로 업데이트 할 수 없습니다 의미 다른 메모리 페이지에서 데이터를 업데이트 및 삭제를 만들고 있다는 것입니다. MongoDB를로 전환하는 것은 아무것도 해결하지 않도록이 경우, 많은 데이터베이스는 같은 문제가 있습니다.

  5. from https://stackoverflow.com/questions/9306815/mongodb-performance-with-growing-data-structure by cc-by-sa and MIT license