Wednesday, 25 January 2017

performance - When to use CouchDB over MongoDB and vice versa




I am stuck between these two NoSQL databases.



In my project I will be creating a database within a database. For example, I need a solution to create dynamic tables.



So users can create tables with columns and rows. I think either MongoDB or CouchDB will be good for this, but I am not sure which one. I will also need efficient paging as well.


Answer



Of C, A & P (Consistency, Availability & Partition tolerance) which 2 are more important to you? Quick reference, the Visual Guide To NoSQL Systems





  • MongodB : Consistency and Partition Tolerance

  • CouchDB : Availability and Partition Tolerance



A blog post, Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparison has 'Best used' scenarios for each NoSQL database compared. Quoting the link,




  • MongoDB: If you need dynamic queries. If you prefer to define indexes, not map/reduce functions. If you need good performance on a big DB. If you wanted CouchDB, but your data changes too much, filling up disks.

  • CouchDB : For accumulating, occasionally changing data, on which pre-defined queries are to be run. Places where versioning is important.




A recent (Feb 2012) and more comprehensive comparison by Riyad Kalla,




  • MongoDB : Master-Slave Replication ONLY

  • CouchDB : Master-Master Replication



A blog post (Oct 2011) by someone who tried both, A MongoDB Guy Learns CouchDB commented on the CouchDB's paging being not as useful.




A dated (Jun 2009) benchmark by Kristina Chodorow (part of team behind MongoDB),



I'd go for MongoDB.



Hope it helps.


No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...