programing

NoSQL - MongoDB vs CouchDB

codeshow 2023. 3. 13. 20:40
반응형

NoSQL - MongoDB vs CouchDB

NoSQL 무브먼트에 관한 한 저는 완전히 초보입니다.저는 MongoDB와 CouchDB에 대해 많이 들었습니다.나는 그 둘 사이에 차이가 있다는 것을 안다.NoSQL의 세계로 들어가는 첫 단계로 어떤 것을 배울 것을 추천하십니까?

다음 링크를 참조하십시오.

업데이트: NoSQL 데이터베이스의 우수한 비교를 발견했습니다.

MongoDB(3.2)

  • 기입처: C++
  • 요점 : JSON 문서 스토어
  • 라이선스: AGPL (드라이버: Apache)
  • 프로토콜:커스텀 바이너리 (BSON)
  • 마스터/슬레이브 복제(복제본 세트를 사용한 자동 페일오버)
  • 샤딩 내장
  • 쿼리는 javascript 표현식입니다.
  • 임의의 Javascript 함수를 서버 측에서 실행합니다.
  • 지리공간 인덱싱 및 쿼리 있음
  • 다양한 성능 특성을 가진 여러 스토리지 엔진
  • 기능 대비 퍼포먼스
  • 문서 검증
  • 저널링
  • 강력한 집약 프레임워크
  • 32비트 시스템의 경우 최대 2개로 제한됩니다.5 Gb
  • 텍스트 검색 통합
  • 빅데이터와 메타데이터를 저장하는 GridFS(실제 FS가 아님)
  • 데이터센터 인식

최적의 사용:동적 쿼리가 필요한 경우.맵/축소가 아닌 인덱스를 정의하려는 경우.대용량 DB에서 뛰어난 성능을 필요로 하는 경우.CouchDB를 원하지만 데이터가 너무 많이 변경되어 디스크가 가득 찬 경우.

를 들어 다음과 같습니다.MySQL 또는 Postgre를 사용하여 수행하는 대부분의 작업SQL이지만 열이 미리 정의되어 있으면 매우 방해가 됩니다.

CouchDB (1.2)

  • 기입처: Erlang
  • 요점: DB의 일관성, 사용 편의성
  • 라이선스:아파치
  • 프로토콜: HTTP/REST
  • 쌍방향(!) 리플리케이션,
  • 연속 또는 임시방편,
  • 충돌 감지 기능이 있습니다.
  • 즉, 마스터 마스터 복제입니다.(!)
  • MVCC - 쓰기 작업이 읽기를 차단하지 않음
  • 이전 버전의 문서를 사용할 수 있습니다.
  • 크래시 전용(신뢰성) 설계
  • 때때로 압축이 필요
  • 뷰: 임베디드 맵/축소
  • 표시 형식 지정: 목록 및 표시
  • 서버측 문서 검증 가능
  • 인증 가능
  • '_changes'를 통한 실시간 업데이트(!
  • 첨부 파일 처리

최적의 사용:사전 정의된 쿼리를 실행하는 데이터를 축적하거나 때때로 변경합니다.버전 관리가 중요한 장소입니다.

를 들어 CRM, CMS 시스템입니다.마스터 마스터 복제는 특히 여러 사이트에 쉽게 도입할 수 있는 흥미로운 기능입니다.

MySQL 세계에서 온 사람이라면 MongoDB는 쿼리와 같은 언어를 지원하므로 훨씬 더 자연스럽게 느껴질 것입니다.

그래서 많은 사람들이 친근한 것 같아요.

CouchDB는 여러 데이터센터 등에서 멀티노드 셋업을 통해 뛰어난 마스터 마스터 레플리케이션 지원을 이용하고 싶은 경우에 매우 적합합니다.

MongoDB의 레플리케이션(replica 세트)은 마스터 슬레이브 슬레이브 슬레이브 슬레이브 슬레이브* 셋업입니다.복제 세트 내의 마스터에 쓸 수 있는 것은, 이러한 레플리카 세트뿐입니다.

표준 사이트 구성의 경우 문제 없습니다.MySQL 사용법과 매우 잘 어울립니다.

그러나 CDN과 같은 글로벌 서비스를 작성하려면 모든 글로벌 노드를 읽고 쓰더라도 동기화된 상태로 유지해야 합니다. CouchDB의 복제와 같은 기능은 매우 유용합니다.

MongoDB는 사용자가 사용할 수 있는 쿼리와 같은 언어를 가지고 있으며 매우 직관적인 느낌을 주는 반면, CouchDB는 "맵 축소" 접근법과 이러한 뷰 개념을 취합니다.처음에는 이상한 느낌이 들지만, 요령을 터득하면 직감적으로 느껴지기 시작합니다.

다음은 간단한 개요이므로 이해가 됩니다.

  • CouchDB는 모든 데이터를 B-Tree에 저장
  • "SELECT * FROM user WHERE..."와 같은 방법으로 동적으로 쿼리할 수 없습니다."
  • 대신 데이터의 개별 "보기"를 정의합니다.「모든 유저의 표시」, 「10세 이상의 유저의 표시」, 「30세 이상의 유저의 표시」등입니다.
  • 이러한 뷰는 맵 축소 접근방식을 사용하여 정의되며 JavaScript 함수로 정의됩니다.
  • 보기를 정의하면, DB는 보기를 할당한 DB의 모든 문서를 이 보기를 통해 공급하고 해당 데이터에 "색인"으로 기능 결과를 기록합니다.
  • 맵/축소 함수의 기능에 관계없이 뷰에서 특정 키(ID) 또는 ID 범위를 요청하는 것과 같은 기본적인 쿼리가 몇 가지 있습니다.
  • 슬라이드를 읽어보세요.Couch에서 본 지도/축소에 대한 가장 명확한 설명입니다.

두 소스 모두 JSON 문서를 사용하지만 CouchDB는 "모든 서버가 마스터이며 세상과 동기화할 수 있다"는 접근방식을 따르고 있습니다.필요할 경우 MongoDB는 NoSQL 세계의 MySQL입니다.

만약 이것이 당신이 필요로 하는 것과 더 비슷하다면, 그렇게 하세요.

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

로우 스피드와 데이터 안전 문제를 해결하려면 Mongo를 CouchDB보다 고속으로 실행할 수 있습니다.메모리가 부족하여 소주기를 제외하고는 디스크에 커밋하지 않도록 할 수 있습니다.

Couch에서도 같은 작업을 할 수 있지만, 이 "모든 것을 뛰어넘는 속도!" 시나리오에서는 HTTP 기반 통신 프로토콜이 Mongo와의 원시 바이너리 통신보다 2-4배 느립니다.

서버의 크래시나 디스크 장애로 인해 DB가 손상되어 망각되어 데이터 포인트가 생각만큼 훌륭하지 않은 경우(월스트리트에서 실시간 거래 시스템을 실행하고 있는 경우 Redis를 참조하지 않는 한)에는 전혀 도움이 되지 않는다는 점에 유의하십시오.

모든 것이 도움이 되기를 바랍니다!

다음 링크를 참조해 주세요.

  1. MongoDB vs CouchDB (MongoDB 측에서)

  2. CouchDB와 MongoDB: 더 많은 정보를 가진 비교 시도

  3. CouchDB와MongoDB 벤치마크(퍼포먼스 비교)

현재 시장에는 그 어느 때보다 많은 NoSQL 데이터베이스가 있습니다.Gartner Magic Quadrant는 지원, 확장성, 관리 및 비용을 기반으로 엔터프라이즈 애플리케이션에 적합한 데이터베이스를 찾는 경우 검토하는 것이 좋습니다.

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

Couchbase는 현재 CB Server의 리비전(2.5.1)에 거의 2개 뒤처져 있고, 2H15의 4.0 릴리즈가 가까워졌기 때문에 아직 시도하지 않은 사람에게 Couchbase를 제안하고 싶습니다.

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

공급업체/제품으로서의 Couchbase의 또 다른 부분은 DB의 다중 사용 유형이라는 것입니다.순수 K/V 스토어, 다차원 확장 기능을 갖춘 Document Oriented Database, 지속성을 갖춘 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

언급URL : https://stackoverflow.com/questions/3375494/nosql-mongodb-vs-couchdb

반응형