MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

NoSQL - MongoDB vs CouchDB

Vedi i seguenti link

Aggiorna :Ho trovato un ottimo confronto di NoSQL banche dati.

MongoDB (3.2)

  • Scritto in:C++
  • Punto principale:archivio di documenti JSON
  • Licenza:AGPL (Driver:Apache)
  • Protocollo:personalizzato, binario (BSON)
  • Replica master/slave (failover automatico con set di repliche)
  • Sharding integrato
  • Le query sono espressioni javascript
  • Esegui funzioni javascript arbitrarie lato server
  • Ha l'indicizzazione e le query geospaziali
  • Più motori di archiviazione con diverse caratteristiche prestazionali
  • Prestazioni rispetto alle funzioni
  • Convalida dei documenti
  • Diario
  • Potente quadro di aggregazione
  • Su sistemi a 32 bit, limitato a ~2,5 Gb
  • Ricerca di testo integrata
  • GridFS per archiviare big data + metadati (non effettivamente un FS)
  • Consapevole del data center

Utilizzato al meglio :Se hai bisogno di query dinamiche. Se preferisci definire indici, non mappare/ridurre le funzioni. Se hai bisogno di buone prestazioni su un grande DB. Se volevi CouchDB, ma i tuoi dati cambiano troppo, riempiendo i dischi.

Ad esempio :Per la maggior parte delle cose che faresti con MySQL o PostgreSQL, ma avere colonne predefinite ti blocca davvero.

CouchDB (1.2)

  • Scritto in:Erlang
  • Punto principale:consistenza del DB, facilità d'uso
  • Licenza:Apache
  • Protocollo:HTTP/REST
  • Replica bidirezionale (!),
  • continua o ad hoc,
  • con rilevamento dei conflitti,
  • quindi, replica master-master. (!)
  • MVCC - le operazioni di scrittura non bloccano le letture
  • Sono disponibili versioni precedenti dei documenti
  • Design solo crash (affidabile)
  • Ha bisogno di compattazione di tanto in tanto
  • Viste:mappa incorporata/riduci
  • Formattazione delle viste:elenchi e programmi
  • Possibile convalida del documento lato server
  • Possibile autenticazione
  • Aggiornamenti in tempo reale tramite '_changes' (!)
  • Gestione degli allegati

Utilizzato al meglio :Per accumulare, modificare occasionalmente dati, su cui eseguire query predefinite. Luoghi in cui il controllo delle versioni è importante.

Ad esempio :Sistemi CRM, CMS. La replica master-master è una funzionalità particolarmente interessante, che consente facili implementazioni multisito.