MongoDB와 CouchDB는 완벽한 대체품입니까?
나는 아직 CouchDB 나 MongoDB로 손을 더럽 히지 않았지만 곧 그렇게하고 싶다 ... 나는 또한 두 시스템에 대해 조금 읽었고 그들이 같은 케이스를 다루는 것처럼 보인다 ... 주요 구별 기능이 누락 되었습니까?
다음 프로젝트에서 기존 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
'IT박스' 카테고리의 다른 글
파이썬 애플리케이션을 정적 바이너리로 컴파일하는 방법이 있습니까? (0) | 2020.12.31 |
---|---|
GCC가 결과를 사용하지 않고 libc의 sqrt ()를 호출하는 이유는 무엇입니까? (0) | 2020.12.31 |
비밀번호 안전성 검사 라이브러리 (0) | 2020.12.31 |
하나 이상의 단어로 gem의 이름을 지정할 때 대시 나 밑줄을 사용해야합니까? (0) | 2020.12.31 |
감정 분석을위한 훈련 데이터 (0) | 2020.12.31 |