복붙노트

[MONGODB] 컬렉션 대 MongoDB를 데이터베이스

MONGODB

컬렉션 대 MongoDB를 데이터베이스

나는 (100,000 주위) 사용자의 많은 양을 처리하기 위해 MongoDB를 사용하는 시스템 (64 비트 버전)을 설계하고 각 사용자의 데이터 (약 100 만 기록)의 많은 양이있을 것이다.

디자인의 최선의 전략은 무엇인가?

많은 감사,

해결법

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

    1.당신이 1000 억 개 기록의 지역에서 어딘가에보고있는 그래서 (100 만 개 기록은 10 만 사용자를 *).

    당신이 1000 억 개 기록의 지역에서 어딘가에보고있는 그래서 (100 만 개 기록은 10 만 사용자를 *).

    많은 양의 데이터를 처리하는 기본 방법은 몽고 클라이언트를 통해 하나의 논리적 단위로 표시하는 여러 서버에 걸쳐 데이터를 분할하는 분산됩니다 클러스터를 만드는 것입니다.

    따라서 귀하의 질문에 대한 대답은 하나의 분산됩니다 컬렉션의 모든 기록을 배치됩니다.

    파편의 수는 요구 및 클러스터의 구성이 이러한 양 및 읽고 쓰기의 분포로 데이터 및 다른 요소의 크기와 관련된다. 내가 그들을 생각하지 않도록 그 질문에 대한 대답은 아마 당신의 독특한 상황과 매우 다릅니다.

    아마 당신이 설정 가능한 시간과 기계가 얼마나 많은 파편 결정 및 많은 기계의 클러스터에 시스템을 테스트하여 시작 했죠. 당신이 당신의 클러스터에 더 많거나 적은 파편을해야하는지 그 성능을 바탕으로, 당신이 결정할 수 있습니다

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

    2.그래서 당신은 100K 사용자를위한 전반적인 100,000,000 세부 레코드를 찾고 있습니다?

    그래서 당신은 100K 사용자를위한 전반적인 100,000,000 세부 레코드를 찾고 있습니다?

    무엇을 많은 사람들이 이해하지 못하는 것 같습니다 것은 MongoDB를 수평 확장에 좋은 것입니다. 수평 확장은 일반적으로 거대한 클러스터에 많은 (많은) 서버를 통해 데이터의 거대한 하나의 컬렉션을 확장으로 분류된다.

    그래서 이미 공통 데이터 (즉 하나의 모음이라는 사용자와 하나 개라는 세부 사항)에 대한 하나의 콜렉션을 사용하는 경우는 MongoDBs에게 핵심 목적과 빌드를 양복지 있습니다.

    언급 한 바와 같이 MongoDB를은 다른 사람에 의해 많은 컬렉션에 걸쳐 수직 확장에 좋은 있도록 없습니다. 그것은 및 12K 초기 컬렉션 인해 인덱스 크기에 실제로 추정된다하더라도 당신이 당신의 데이터베이스에 5K 컬렉션으로 적게 할 수 있습니다로 시작하는 nssize 제한이 있습니다.

    그래서 사용자 당 모음은 전혀 가능하지 않습니다. 그것은 그것의 핵심 원칙에 대해 MongoDB의를 사용하는 것입니다.

    같은 문제는 사용자 당 단일 컬렉션을 가진 것으로, 어쩌면 더 사용자 당 데이터베이스를 포함 가졌어요.

    내가 어떤 사람은 그러나, 근처에도 최적화 된 셋업에 (또는 어쩌면 이상) 수십억의 100 단위에 수십억 MongoDB를 확장하거나 할 수없는 발생한 적이없는, 내가 볼 수없는 이유는 없습니다; 모든 페이스 북이 그들을 위해 (32K + 파편을 통해) 사용자 당 수십억의 100 단위에 MySQL의 스케일을 할 수 있으며, 이후 샤딩 개념은 두 개의 데이터베이스 사이의 유사합니다.

    이론과 수행의 가능성 그래서이있다. 그것은 바로 스키마와 파편 개념 키 (와 벌인 및 네트워크 등 등 등 등) 선택에 대한 모든 것입니다.

    당신이 증인 문제에 있다면 당신은 분할 아카이브 컬렉션을 위해 이동하거나 주요 컬렉션 멀리 항목을 삭제하지만 그 대신 당신이 당신의 거대한 데이터 세트의 각 세그먼트는 특정 시점에서 어디 MongoDB를 알고 있는지 확인하려면, 잔인한 생각할 수 마스터에 시간이 데이터가 뜨거운 항상 보장에, 글로벌 및 분산 영업을하지 않는 방식으로 쿼리는 매우 빠르게해야합니다.

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

    3.각 사용자에 대한 콜렉션 소개 :

    각 사용자에 대한 콜렉션 소개 :

    기본 구성으로하여 MongoDB는 12K 컬렉션으로 제한됩니다. 당신은 --nssize와 이것의 크기를 늘릴 수 있지만 제한이 아니다. 그리고 당신은이 12K로 인덱스를 계산해야합니다. (몽고 문서의 "네임 스페이스"개념을 확인).

    각 사용자에 대한 데이터베이스 소개 :

    보기의 모델 지점의 경우, 그 호기심입니다. 기술의 경우,이 몽고에 제한은 없지만, 당신은 아마 파일 설명합니다 (OS / 설정에서 제한)에 제한이 있습니다.

    @Rohit 말한다 그래서으로, 두 사람은 지난 좋지 않다. 어쩌면 당신은 당신의 사건에 대한 자세한 내용을 설명해야한다. 아마 당신은 다른 컬렉션 (: 등 이름의 각 첫 글자 하나, 또는 회사의 각 서비스에 대한 ... 예)로 사용자를 줄일 수 있습니다. 그리고 물론 사용 샤딩의.

    편집 : 어쩌면 MongoDB를이 사용 사례에 가장 적합한 데이터베이스가 아닙니다.

  4. from https://stackoverflow.com/questions/13937806/mongodb-database-vs-collection by cc-by-sa and MIT license