NoSQL-MongoDB vs CouchDB [닫기]


154

나는 NoSQL 운동과 관련하여 완전한 멍청한 놈입니다. MongoDB와 CouchDB에 대해 많이 들었습니다. 둘 사이에 차이점이 있다는 것을 알고 있습니다. NoSQL 세계로의 첫 걸음으로 어떤 것을 배우기를 권장합니까?


mongoDB의 첫 단계는 beacause가 낫기 때문에 배우기가 더 쉽지만 몇 가지 문제가 있습니다. 특정 noSQL 데이터베이스를 사용하는 최선의 선택은 없으며 수행해야 할 작업에 따라 다릅니다. 문서 지향, 키-값, 그래프 지향, 열 지향을 확인하십시오.
Chris

답변:


148

다음 링크를 참조하십시오

업데이트 : NoSQL 데이터베이스를 크게 비교했습니다 .

몽고 DB (3.2)

  • 작성 : C ++
  • 요점 : JSON 문서 저장소
  • 라이센스 : AGPL (드라이버 : Apache)
  • 프로토콜 : 사용자 지정, 이진 (BSON)
  • 마스터 / 슬레이브 복제 (복제 세트를 사용한 자동 장애 조치)
  • 샤딩 내장
  • 쿼리는 자바 스크립트 표현식입니다.
  • 서버 측에서 임의의 자바 스크립트 함수 실행
  • 지리 공간 인덱싱 및 쿼리
  • 성능 특성이 다른 여러 스토리지 엔진
  • 기능에 대한 성능
  • 문서 검증
  • 저널링
  • 강력한 집계 프레임 워크
  • 32 비트 시스템에서 ~ 2.5Gb로 제한
  • 텍스트 검색 통합
  • 빅 데이터 + 메타 데이터 (실제로 FS 아님)를 저장하는 GridFS
  • 데이터 센터 인식

가장 적합 : 동적 쿼리가 필요한 경우. 함수를 매핑 / 축소하지 않고 인덱스를 정의하려는 경우. 큰 DB에서 좋은 성능이 필요한 경우. CouchDB를 원했지만 데이터가 너무 많이 변경되어 디스크를 채우는 경우.

예를 들어 : MySQL 또는 PostgreSQL로 할 수있는 대부분의 작업에 대해 사전 정의 된 열을 보유하면 실제로 방해가됩니다.

소파 DB (1.2)

  • 에랭 : Erlang
  • 요점 : DB 일관성, 사용 편의성
  • 라이센스 : Apache
  • 프로토콜 : HTTP / REST
  • 양방향 (!) 복제
  • 연속 또는 임시
  • 충돌 감지
  • 따라서 마스터-마스터 복제. (!)
  • MVCC-쓰기 조작이 읽기를 차단하지 않습니다
  • 이전 버전의 문서를 사용할 수 있습니다
  • 충돌 전용 (신뢰할 수있는) 디자인
  • 때때로 압축해야 함
  • 뷰 : 임베디드 맵 / 축소
  • 뷰 형식화 : 목록 및 쇼
  • 서버 측 문서 검증 가능
  • 인증 가능
  • '_changes'를 통한 실시간 업데이트 (!)
  • 첨부 파일 처리

최선의 사용 : 미리 정의 된 쿼리를 실행할 누적 데이터, 때때로 변경되는 데이터. 버전 관리가 중요한 곳.

: CRM, CMS 시스템. 마스터-마스터 복제는 특히 흥미로운 기능으로 다중 사이트 배포가 용이합니다.


1
MongoDB의 서버 라이센스가 AGPL 인 경우 mongodb의 라이센스 정책을 살펴보면 약간의 도움이 될 수 있습니다.
Patrick

@amra 그렇다면 데이터를 저장하고 읽기만하면 couchdb를 사용하는 것이 최선의 선택입니까?
verystrongjoe

@verystrongjoe 데이터와 쿼리의 복잡성에 따라 다릅니다. 일반적으로 어느 것이 최고인지 말할 수 없습니다.
amra

@amra Ok. 그러나 .. 데이터를 축적하고 데이터를 선택할 때 mongo와 couch 중 하나를 선택해야한다면 어느 것이 더 낫습니까?
verystrongjoe

~ 2012 년 이후 CouchApps는 더 이상 권장되지 않습니다. docs.couchdb.com/en/latest/ddocs
Tim Sylvester

123

MySQL 세계에서 온다면 MongoDB는 쿼리와 같은 언어 지원으로 인해 훨씬 ​​자연스럽게 느껴질 것입니다.

나는 그것이 많은 사람들에게 그렇게 친절하게 생각합니다.

CouchDB는 다른 노드 또는 다른 데이터 센터에서 다중 노드 설정으로 실제로 훌륭한 마스터 마스터 복제 지원을 활용하려는 경우 환상적입니다.

MongoDB의 복제 (복제본 세트)는 마스터-슬레이브-슬레이브-슬레이브-* 설정이며 복제본 세트의 마스터에만 쓸 수 있으며 그 중 하나에서 읽을 수 있습니다.

표준 사이트 구성의 경우에는 문제가 없습니다. MySQL 사용법에 잘 매핑됩니다.

그러나 CDN과 같은 전역 서비스를 작성하여 모든 전역 노드를 읽기 / 쓰기하더라도 동기화 된 상태로 유지해야하는 경우 CouchDB의 복제와 같은 것이 큰 도움이 될 것입니다.

MongoDB에는 쿼리와 유사한 언어가 있으며 사용이 매우 직관적이지만 CouchDB는 "지도 축소"접근 방식과 이러한 관점 개념을 취합니다. 처음에는 이상하게 느껴지지만 교수형에 처하면 직관적으로 느껴지기 시작합니다.

다음은 간단한 개요입니다.

  • CouchDB는 모든 데이터를 b- 트리에 저장합니다
  • "SELECT * FROM user WHERE ..."와 같이 동적으로 "쿼리"할 수 없습니다.
  • 대신 데이터의 개별 "보기"를 정의합니다. "여기에는 모든 사용자에 대한보기가 있습니다", "여기에는 10 세 이상의 모든 사용자에 대한보기"가 있습니다. "여기에는 30 세 이상의 모든 사용자에 대한보기가 있습니다." 곧.
  • 이러한 뷰는 map-reduce 접근 방식을 사용하여 정의되며 JavaScript 함수로 정의됩니다.
  • 뷰를 정의하면 DB는 뷰를 통해 할당 한 DB의 모든 문서를 공급하고 함수의 결과를 해당 데이터의 "인덱스"로 기록하기 시작합니다.
  • 지도 / 축소 함수의 기능에 관계없이 특정 키 (ID) 또는 ID 범위를 요청하는 것과 같이 뷰에서 수행 할 수있는 몇 가지 기본 쿼리가 있습니다.
  • 을 통해 읽기 이 슬라이드 , 그것은지도의 가장 좋은 설명입니다 / 내가 본 소파에서 줄일 수 있습니다.

따라서이 두 소스는 모두 JSON 문서를 사용하지만 CouchDB는이 "더욱 모든 서버는 마스터이며 세계와 동기화 할 수 있습니다"접근 방식을 따르고 있으며, 필요한 경우 환상적이지만 MongoDB는 실제로 NoSQL 세계의 MySQL입니다.

그래서 그것이 당신이 필요로하고 / 원하는 것과 더 비슷하게 들리면 계속하십시오.

Mongo의 바이너리 프로토콜과 CouchDB의 RESTful 인터페이스와 같은 차이점은 모두 사소한 세부 사항입니다.

당신은 원시 속도와 데이터의 안전과 지옥을 원하는 경우에, 당신은 할 수 있습니다 당신은 메모리가 작동을 말해 스파 스 간격을 제외하고 디스크에 일을 저지 할 수 없기 때문에 몽고 빠르게 CouchDB를보다 실행합니다.

Couch와 동일한 작업을 수행 할 수 있지만 HTTP 기반 통신 프로토콜은이 "모든 속도"에서 Mongo와의 원시 이진 통신보다 2-4 배 더 느립니다. 대본.

서버 충돌이나 디스크 장애로 인해 DB가 손상되어 DB를 망각으로 만들면 미친 미친 미친 속도는 쓸모가 없다는 점을 명심하십시오. 거리는 Redis를 참조하십시오).

모두가 도움이되기를 바랍니다!


"MongoDB는 실제로 NoSQL 세계의 MySQL입니다."-상황이 바뀌 었는지 모르겠지만 2014 년 기사는 동의하지 않습니다 : sarahmei.com/blog/2013/11/11/why-you-should-never-use- mongodb
Onur Yıldırım

정신적으로 느슨하게 의견이 여전히 효과가 있다고 생각하지만, 귀하는 옳습니다. 지난 반년 동안 MUCH가 바뀌었고 내 의견은 쉽게 무시되어야합니다.
리야드 칼라


1

그 어느 때보 다 더 많은 NoSQL 데이터베이스가 시장에 나와 있습니다. 지원, 확장 성, 관리 및 비용을 기반으로하는 엔터프라이즈 응용 프로그램에 적합한 데이터베이스를 찾고 있다면 Gartner Magic Quadrant를 살펴 보는 것도 좋습니다.

http://www.gartner.com/technology/reprints.do?id=1-23A415Q&ct=141020&st=sb

Cubbase를 아직 시도하지는 않았지만 보고서에 표시된 버전 (2.5.1)을 기반으로하지 않은 사람에게 Couchbase를 제안하고 싶습니다 .CB 서버가 오늘의 2 개정판이기 때문에 하반기 4.0 릴리스 근처에 있습니다. .

http://www.couchbase.com/coming-in-couchbase-server-4-0

벤더 / 제품으로서 Couchbase에 대한 다른 부분은 그것이 다중 사용 유형의 DB라는 것입니다. 순수한 K / V 저장소, 다차원 적 확장을 지원하는 문서 지향 데이터베이스, Memcached, 지속성을 가진 캐시 비 저장 기능, 자동 조인 기능이있는 ANSI 92 호환 SQL, 버튼을 눌러 DR 클러스터에 복제 및 심지어 생태계에 내장 된 모바일 컴포넌트를 가지고 있습니다.

다른 것이 없다면 최신 벤치 마크를 확인하는 것이 좋습니다.

http://info.couchbase.com/Benchmark_MongoDB_VS_CouchbaseServer_HPW_BM.html http://info.couchbase.com/NoSQL-Technical-Comparison-Report.html

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.