IT박스

MongoDB와 CouchDB는 완벽한 대체품입니까?

itboxs 2020. 12. 31. 08:06
반응형

MongoDB와 CouchDB는 완벽한 대체품입니까?


나는 아직 CouchDBMongoDB로 손을 더럽 히지 않았지만 곧 그렇게하고 싶다 ... 나는 또한 두 시스템에 대해 조금 읽었고 그들이 같은 케이스를 다루는 것처럼 보인다 ... 주요 구별 기능이 누락 되었습니까?

다음 프로젝트에서 기존 RDBMS 대신 문서 기반 저장소를 사용하고 싶습니다. 또한 데이터 저장소가 필요합니다.

  • 큰 이진 개체 (이미지 및 비디오) 처리
  • 물리적으로 분리 된 노드에 자동 복제
  • 추가 RDBMS의 필요성을 불필요하게 렌더링

둘 다 이러한 요구 사항에 똑같이 적합합니까?

감사!


나는 실제로 두 가지를 매우 다른 프로젝트에 매우 광범위하게 사용했습니다.

나열된 요구 사항에 똑같이 적합하다고 말하고 싶지만 둘 사이에는 많은 차이가 있습니다. 가장 큰 IMO는 쿼리 가능성입니다. CouchDB를은 RDBMS의 의미에서 '쿼리'(... SELECT * FROM) 대신 사용 '이없는 이상 (기본적으로 정적 쿼리 정의 저장 프로 시저처럼' 에서 데이터베이스 (1) ). MongoDB에는 훨씬 더 '일반적인'쿼리가 있습니다.

기본적으로 애플리케이션 요구 사항에 달려 있습니다. 더 많은 정보를 제공하면 그 상황에서 무엇이 문제가 될지에 대해 좀 더 밝힐 수있을 것입니다.

(1) : CouchDB에서 일시적인 비 정적 쿼리를 가질 수 있지만 프로덕션 용도로는 권장되지 않습니다.


Mongo는보다 "전통적인"쿼리를 사용합니다. 키별로 인덱싱을 설정하고 SQLish 쿼리 구문을 사용합니다.

CouchDB의 뷰는 훨씬 더 깊은 인덱싱 및 관계를 수행 할 수 있지만 약간 더 많은 작업을 수행하고 쿼리를 수행하기 위해 키 정렬이 작동하는 방식을 이해해야합니다.

복제 시스템에도 큰 차이가 있습니다. Mongo의 복제는 마스터와 슬레이브 등이있는 대부분의 RDBMS 솔루션과 매우 비슷합니다. CouchDB의 복제는 더 많은 피어 투 피어이며 마스터 / 슬레이브가 없으며 모든 CouchDB는 노드입니다.


CouchDB의 복제는 지리적으로 떨어져있는 사이트를 동기화 상태로 유지하기 위해 만들어졌습니다. 복제가 중단 된 지점에서 다시 시작하여 네트워크 및 기타 오류를 정상적으로 처리합니다. 참여 노드는 의도적으로 오프라인 상태가 될 수도 있습니다.


MongoDB를 사용하기 전에 http://groups.google.com/group/mongodb-user/browse_thread/thread/460dbd49a5b6b267을 살펴 보는 것이 좋습니다 . MongoDB는 쓰기를 할 때마다 fsync가 없기 때문에 데이터가 손상 될 가능성이 적습니다.


http://nosql.mypopescu.com/post/298557551/couchdb-vs-mongodb


개발자 관점에서 볼 때 가장 큰 차이점은 몽고 라이브 쿼리와 카우치 뷰 ( "컴파일"되어야 함)입니다. 운영 관점에서 소파는 http-rest에서 완전히 작동합니다. http 서버를 구성 할 수 있다면 Coach를 설정하는 방법을 알고 있습니다. 대신 Mongo를 사용하면 구성 서버, 복제본 세트 및 mongo (밸런서 종류)를 설정하는 방법을 배워야합니다.

참조 URL : https://stackoverflow.com/questions/1990086/are-mongodb-and-couchdb-perfect-substitutes

반응형