MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

NoSQL - MongoDB contre CouchDB

Voir les liens suivants

Mettre à jour :J'ai trouvé une excellente comparaison de NoSQL bases de données.

MongoDB (3.2)

  • Écrit en :C++
  • Point principal :magasin de documents JSON
  • Licence :AGPL (Pilotes :Apache)
  • Protocole :personnalisé, binaire (BSON)
  • Réplication maître/esclave (basculement automatique avec jeux de répliques)
  • Sharding intégré
  • Les requêtes sont des expressions javascript
  • Exécuter des fonctions javascript arbitraires côté serveur
  • Possède une indexation et des requêtes géospatiales
  • Plusieurs moteurs de stockage avec des caractéristiques de performances différentes
  • Performance par rapport aux fonctionnalités
  • Validation des documents
  • Journalisation
  • Cadre d'agrégation puissant
  • Sur les systèmes 32 bits, limité à environ 2,5 Go
  • Recherche textuelle intégrée
  • GridFS pour stocker les mégadonnées + les métadonnées (pas vraiment un FS)
  • Conscient du centre de données

Meilleur utilisé :Si vous avez besoin de requêtes dynamiques. Si vous préférez définir des index, pas des fonctions map/reduce. Si vous avez besoin de bonnes performances sur une grosse base de données. Si vous vouliez CouchDB, mais que vos données changent trop, remplissant les disques.

Par exemple  :Pour la plupart des choses que vous feriez avec MySQL ou PostgreSQL, mais le fait d'avoir des colonnes prédéfinies vous freine vraiment.

CouchDB (1.2)

  • Écrit en :Erlang
  • Point principal :cohérence de la base de données, facilité d'utilisation
  • Licence :Apache
  • Protocole :HTTP/REST
  • Réplication bidirectionnelle (!),
  • continu ou ponctuel,
  • avec détection de conflit,
  • donc, réplication maître-maître. (!)
  • MVCC :les opérations d'écriture ne bloquent pas les lectures
  • Les versions précédentes des documents sont disponibles
  • Conception anti-crash (fiable)
  • Doit être compacté de temps en temps
  • Vues :carte intégrée/réduction
  • Mise en forme des vues :listes et affichages
  • Validation des documents côté serveur possible
  • Authentification possible
  • Mises à jour en temps réel via '_changes' (!)
  • Gestion des pièces jointes

Meilleur utilisé :Pour accumuler des données occasionnellement changeantes, sur lesquelles des requêtes prédéfinies doivent être exécutées. Endroits où la gestion des versions est importante.

Par exemple :systèmes CRM, CMS. La réplication maître-maître est une fonctionnalité particulièrement intéressante, permettant des déploiements multi-sites faciles.