Saturday, November 16, 2019

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

hard drive - Leaving bad sectors in unformatted partition?

Laptop was acting really weird, and copy and seek times were really slow, so I decided to scan the hard drive surface. I have a couple hundr...