sql >> Base de Datos >  >> NoSQL >> MongoDB

NoSQL - MongoDB frente a CouchDB

Ver los siguientes enlaces

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.