MongoDB를 통해 CouchDB를 사용하거나 그 반대의 경우
이 두 NoSQL 데이터베이스 사이에 갇혀 있습니다.
내 프로젝트에서는 데이터베이스 내에 데이터베이스를 만들 것입니다. 예를 들어 동적 테이블을 만드는 솔루션이 필요합니다.
따라서 사용자는 열과 행이있는 테이블을 만들 수 있습니다. MongoDB 또는 CouchDB 중 하나가 이것에 좋을 것이라고 생각하지만 어느 것이 있는지 잘 모르겠습니다. 또한 효율적인 페이징도 필요합니다.
C, A 및 P (일관성, 가용성 및 파티션 허용 오차) 중에서 어느 2 개가 더 중요합니까? 빠른 참조, NoSQL 시스템 비주얼 가이드
- MongodB : 일관성 및 파티션 허용 오차
- CouchDB : 가용성 및 파티션 허용 오차
블로그 게시물 인 Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j 비교 에는 비교 된 각 NoSQL 데이터베이스에 대한 ' 최적 사용 '시나리오가 있습니다. 링크를 인용하면,
- MongoDB : 동적 쿼리가 필요한 경우. 매핑 / 축소 함수가 아닌 인덱스 정의를 선호하는 경우. 큰 DB에서 좋은 성능이 필요한 경우. CouchDB를 원했지만 데이터가 너무 많이 변경되어 디스크가 가득 찬 경우.
- CouchDB : 미리 정의 된 쿼리가 실행될 데이터를 축적하고 가끔 변경합니다. 버전 관리가 중요한 장소.
최근 (2012 년 2 월) Riyad Kalla의 보다 포괄적 인 비교 ,
- MongoDB : 마스터-슬레이브 복제 전용
- CouchDB : 마스터-마스터 복제
두 가지를 모두 시도한 사람의 블로그 게시물 (2011 년 10 월), MongoDB Guy Learns CouchDB 는 CouchDB의 페이징이 그다지 유용하지 않다고 언급했습니다.
날짜가 (2009 6월가) 벤치 마크 에 의해 크리스티나 초도 로우 ( MongoDB를 뒤 팀의 일원 )
나는 MongoDB에 갈 것입니다.
도움이되기를 바랍니다.
위의 모든 대답은 이야기를 복잡하게 만듭니다.
- 모바일 구성 요소를 계획하거나 데스크톱 사용자가 오프라인으로 작업 한 다음 작업을 서버에 동기화해야하는 경우 CouchDB가 필요합니다.
- 코드가 서버에서만 실행되는 경우 MongoDB를 사용하십시오.
그게 다야. 모바일 및 데스크톱 장치에 복제 할 수있는 CouchDB의 (멋진) 기능이 필요하지 않는 한 MongoDB는 현재 성능, 커뮤니티 및 도구 이점을 가지고 있습니다.
아주 오래된 질문이지만 Google 상단에 있으며 내가 보는 답변이 마음에 들지 않으므로 여기에 내 질문이 있습니다.
Couchdb에는 CouchApps를 개발하는 능력보다 훨씬 더 많은 것이 있습니다. 대부분의 사람들은 고전적인 3 계층 웹 아키텍처에서 CouchDb를 사용합니다.
실제로 대부분의 사람들에게 결정적인 요소는 MongoDb가 SQL과 같은 구문으로 임시 쿼리를 허용하는 반면 CouchDb는 그렇지 않다는 사실입니다 (이러한 뷰를 생성하더라도 일부 사람들을 끄는 맵 / 축소 뷰를 생성해야합니다). Rapid Application Development 친화적입니다. 저장 프로 시저와 관련이 없습니다.)
수용된 답변에서 제기 된 요점을 해결하려면 : CouchDb는 훌륭한 버전 관리 시스템을 가지고 있지만 버전 관리가 중요한 장소에만 적합하다는 것을 의미하지는 않습니다. 또한 couchdb는 추가 전용 특성으로 인해 쓰기가 매우 쉽습니다 (데이터가 손실되지 않도록 보장하면서 쓰기 작업이 즉시 반환 됨).
누구도 언급하지 않은 매우 중요한 점은 CouchDb가 b- 트리 인덱스에 의존한다는 사실입니다. 즉, 1 개의 "행"또는 200 억 개의 쿼리 시간이 항상 10ms 미만으로 유지됩니다. 이것은 CouchDb를 지연 시간이 짧고 읽기 친화적 인 데이터베이스로 만드는 게임 체인저이며 간과해서는 안됩니다.
공정하고 철저하게 MongoDb가 CouchDb에 비해 갖는 이점은 도구 및 마케팅입니다. 그들은 온 보딩을 쉽게 만들어주는 모든 주요 언어와 플랫폼을위한 일류 시민 도구를 가지고 있으며, 임시 쿼리에 추가되어 SQL에서 훨씬 쉽게 전환 할 수 있습니다.
CouchDb에는 오늘날 사용 가능한 많은 라이브러리가 있지만 이러한 수준의 도구가 없지만 CouchDb는 HTTP API로 노출되므로 선호하는 언어로 래퍼를 만들어 사용하는 것이 매우 쉽습니다. 개인적으로이 접근 방식이 부풀어 오르는 것을 방지하고 원하는 것만 취할 수 있다는 점에서 마음에 듭니다 (인터페이스 분리 원칙).
그래서 나는 둘 중 하나를 사용하는 것이 대체로 그들의 패러다임에 대한 편안함과 선호도의 문제라고 말하고 싶습니다. CouchDb 접근 방식은 특정 사람들에게 "적합"하지만 데이터베이스 기능 (완전한 공식 가이드에서 ) 에 대해 배운 후에 "지옥 그래"순간이 없다면 다음 단계로 넘어 가야 합니다.
"올바른 작업에 적합한 도구"를 사용하려는 경우 CouchDb 사용을 권장하지 않습니다. 그런 식으로 사용할 수 없다는 것을 알게되고 결국 "CouchDb에서 조인은 어디에 있습니까?"와 같은 블로그 게시물을 작성하고 열광하게 될 것이기 때문입니다. 및 "거래 관리는 어디에 있습니까?". 사실 Couchdb는 역설적이게도 매우 투명하지만 동시에 패러다임 전환과 문제에 접근하는 방식의 변화가 필요합니다.
하지만 일단 그렇게하면 정말 효과가 있습니다. 저는 개인적으로 다른 데이터베이스를 선택하기 위해 프로젝트에 대한 매우 강력한 이유나 주요 거래 중단자가 필요하지만 지금까지 어떤 것도 만나지 못했습니다.
이 질문을 직접 하시겠습니까? 그리고 DB 선택을 결정합니다.
- Do you need master-master? Then CouchDB. Mainly CouchDB supports master-master replication which anticipates nodes being disconnected for long periods of time. MongoDB would not do well in that environment.
- Do you need MAXIMUM R/W throughput? Then MongoDB
- Do you need ultimate single-server durability because you are only going to have a single DB server? Then CouchDB.
- Are you storing a MASSIVE data set that needs sharding while maintaining insane throughput? Then MongoDB.
- Do you need strong consistency of data? Then MongoDB.
- Do you need high availability of database? Then CouchDB.
- Are you hoping multi databases and multi tables/ collections? Then MongoDB
- You have a mobile app offline users and want to sync their activity data to a server? Then you need CouchDB.
- Do you need large variety of querying engine? Then MongoDB
- Do you need large community to be using DB? Then MongoDB
I summarize the answers found in that article:
MongoDB: Better querying, data storage in BSON (faster access), better data consistency, multiple collections
CouchDB: Better replication, with master to master replication and conflict resolution, data storage in JSON (human-readable, better access through REST services), querying through map-reduce.
So in conclusion, MongoDB is faster, CouchDB is safer.
Also: http://nosql.mypopescu.com/post/298557551/couchdb-vs-mongodb
Be aware of an issue with sparse unique indexes in MongoDB. I've hit it and it is extremely cumbersome to workaround.
The problem is this - you have a field, which is unique if present and you wish to find all the objects where the field is absent. The way sparse unique indexes are implemented in Mongo is that objects where that field is missing are not in the index at all - they cannot be retrieved by a query on that field - {$exists: false}
just does not work.
The only workaround I have come up with is having a special null family of values, where an empty value is translated to a special prefix (like null:) concatenated to a uuid. This is a real headache, because one has to take care of transforming to/from the empty values when writing/quering/reading. A major nuisance.
I have never used server side javascript execution in MongoDB (it is not advised anyway) and their map/reduce has awful performance when there is just one Mongo node. Because of all these reasons I am now considering to check out CouchDB, maybe it fits more to my particular scenario.
BTW, if anyone knows the link to the respective Mongo issue describing the sparse unique index problem - please share.
I'm sure you can with Mongo (more familiar with it), and pretty sure you can with couch too.
Both are documented oriented (JSON-based) so there would be no "columns" but rather fields in documents -- but they can be fully dynamic.
They both do it you may want to look at other factors on which to use: other features you care about, popularity, etc. Google insights, indeed.com job posts would be ways to look at popularity.
You could just try it i think you should be able to have mongo running in 5 minutes.
참고URL : https://stackoverflow.com/questions/12437790/when-to-use-couchdb-over-mongodb-and-vice-versa
'Nice programing' 카테고리의 다른 글
Java 8에서 map과 flatMap 메소드의 차이점은 무엇입니까? (0) | 2020.10.02 |
---|---|
Django 뷰에서 2 개 이상의 쿼리 셋을 결합하는 방법은 무엇입니까? (0) | 2020.10.02 |
JavaScript 함수를 매개 변수로 전달 (0) | 2020.10.02 |
속성 값을 기준으로 JavaScript 개체 정렬 (0) | 2020.10.02 |
자바 스크립트로 오디오를 재생 하시겠습니까? (0) | 2020.10.02 |