| |
CouchDB |
MongoDB |
MySQL |
Data Model |
Document-Oriented (JSON) |
Document-Oriented (BSON) |
Relational |
Data Types |
string,number,boolean,array,object |
string, int, double, boolean, date, bytearray, object, array, others |
link |
Large Objects (Files) |
Yes (attachments) |
Yes (GridFS) |
blobs? |
Horizontal partitioning scheme |
CouchDB Lounge |
Auto-sharding (v1.6) |
? |
Replication |
Master-master (with developer supplied conflict resolution) |
Master-slave (and "replica sets") |
Master-slave |
Object(row) Storage |
One large repository |
Collection based |
Table based |
Query Method |
Map/reduce of javascript functions to lazily build an index per query |
Dynamic; object-based query language |
Dynamic; SQL |
Secondary Indexes |
Yes |
Yes |
Yes |
| Atomicity |
Single document |
Single document |
Yes - advanced |
Interface |
REST |
Native drivers ; REST add-on |
Native drivers |
Server-side batch data manipulation |
? |
Map/Reduce, server-side javascript |
Yes (SQL) |
Written in |
Erlang |
C++ |
C++ |
| Concurrency Control |
MVCC |
Update in Place |
|
Geospatial Indexes |
GeoCouch |
Yes. (As of June 2010, coordinate system is cartesian. Spherical coming soon.) |
? |
| Distributed Consistency Model |
Eventually consistent (master-master replication with versioning and version reconciliation) |
Strong consistency. Eventually consistent reads from secondaries are available. |
Strong consistency. Eventually consistent reads from secondaries are available. |
PLEASE POST QUESTIONS IN THE USER GROUPS FORUM. Post non-question comments and helpful hints here.
blog comments powered by Disqus