복붙노트

[MONGODB] MongoDB의 성능 - 여러 데이터베이스를 가지고

MONGODB

MongoDB의 성능 - 여러 데이터베이스를 가지고

우리의 응용 프로그램은 DB에서 5 명 컬렉션을 필요로한다. 우리는 우리의 응용 프로그램에 클라이언트를 추가 할 때 우리는 각 고객에 대해 별도의 DB를 유지하고 싶습니다. 우리는 500 명 고객이있는 경우 예를 들어, 우리는 500 DBS 2500 개 컬렉션 (각 데시벨 5 컬렉션이)있을 것입니다. 이 방법으로 우리는 각각의 고객 데이터를 분리 할 수 ​​있습니다. 내 관심사는 어떤 성능 문제로 이어질 것입니까?

해결법

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

    1.그거 좋은 생각이야. 이 당신을 위해 제공 할 것이다 논리적 분리의 위에, 당신은 또한 다른 고객의 데이터에 대한 부주의 한 접근을 방지하기 위해 MongoDB의에서 데이터베이스 수준의 보안을 사용할 수 있습니다.

    그거 좋은 생각이야. 이 당신을 위해 제공 할 것이다 논리적 분리의 위에, 당신은 또한 다른 고객의 데이터에 대한 부주의 한 접근을 방지하기 위해 MongoDB의에서 데이터베이스 수준의 보안을 사용할 수 있습니다.

    (즉 시나리오에 가능하다면) 아니, 사실은 (여전히 힘은 동일한 I / O 대역폭을 놓고 경쟁하는 경우 다른 고객의 성능에 영향을주지 않습니다 하나 개의 고객에 대한 데이터베이스 레벨 잠금 매우 무거운 잠금 경합으로 도움이 될 것입니다 당신이 --directoryperdb 옵션을 사용하는 경우 그러나 당신은 별도의 물리적 장치에 그 데시벨을 배치 할 수있는 능력을 가지고있다.

    샤딩은 또한 당신도 어떤 컬렉션을 분할 할 필요가 없습니다으로 쉽게 확장 수 - 여러 파편에 걸쳐 단지 라운드 로빈 데이터베이스 부하가 별도의 클러스터에 배포 할 수 있도록 할 수 있습니다 (만약 당신이 그 수준에 도달 할 때).

    이 삭제 (그리고 무료 목록에 추가)되는 경우를 제외하고 다른 대답 주장과는 달리, TTLMonitor 스레드가 RAM에 문서를 당겨하지 않습니다. 그들은 모든 문서뿐만 아니라 문서를 직접 위치에 만료 될 경우 모두 말할 수 TTL 인덱스의 오프 작동합니다.

    난 강력하게 그 어느 파티션에 부하를 허용하지 않는 한 하나의 데이터베이스 많은 컬렉션 솔루션에 대한 추천도 보안을 제공 않으며 어떤 쉽게 응용 프로그램 측에서 처리하는 것입니다.

  2. from https://stackoverflow.com/questions/16916903/mongodb-performance-having-multiple-databases by cc-by-sa and MIT license