Ver los siguientes enlaces
- CouchDB Vs MongoDB
- MongoDB o CouchDB:¿aptos para producción?
- DB-Engines:comparación CouchDB frente a MongoDB
Actualizar :Encontré una excelente comparación de NoSQL bases de datos.
MongoDB (3.2)
- Escrito en:C++
- Punto principal:almacén de documentos JSON
- Licencia:AGPL (Controladores:Apache)
- Protocolo:personalizado, binario (BSON)
- Replicación maestro/esclavo (conmutación por error automática con conjuntos de réplicas)
- Sharding integrado
- Las consultas son expresiones javascript
- Ejecutar funciones javascript arbitrarias en el lado del servidor
- Tiene indexación geoespacial y consultas
- Múltiples motores de almacenamiento con diferentes características de rendimiento
- Rendimiento sobre funciones
- Validación de documentos
- Diario
- Potente marco de agregación
- En sistemas de 32 bits, limitado a ~2,5 Gb
- Búsqueda de texto integrada
- GridFS para almacenar big data + metadatos (no es realmente un FS)
- Consciente del centro de datos
Mejor usado :Si necesita consultas dinámicas. Si prefiere definir índices, no mapear/reducir funciones. Si necesita un buen rendimiento en una base de datos grande. Si quería CouchDB, pero sus datos cambian demasiado, llenando los discos.
Por ejemplo :para la mayoría de las cosas que haría con MySQL o PostgreSQL, pero tener columnas predefinidas realmente lo frena.
CouchDB (1.2)
- Escrito en:Erlang
- Punto principal:coherencia de la base de datos, facilidad de uso
- Licencia:Apache
- Protocolo:HTTP/REST
- Replicación bidireccional (!),
- continuo o ad-hoc,
- con detección de conflictos,
- por lo tanto, replicación maestro-maestro. (!)
- MVCC:las operaciones de escritura no bloquean las lecturas
- Las versiones anteriores de los documentos están disponibles
- Diseño solo para choques (confiable)
- Necesita compactación de vez en cuando
- Vistas:mapa incrustado/reducir
- Vistas de formato:listas y programas
- Validación de documentos del lado del servidor posible
- Autenticación posible
- Actualizaciones en tiempo real a través de '_changes' (!)
- Gestión de archivos adjuntos
Mejor usado :Para acumular datos, que cambian ocasionalmente, sobre los que se deben ejecutar consultas predefinidas. Lugares donde el control de versiones es importante.
Por ejemplo :CRM, sistemas CMS. La replicación maestro-maestro es una característica especialmente interesante, que permite implementaciones sencillas en varios sitios.