Voir les liens suivants
- CouchDB contre MongoDB
- MongoDB ou CouchDB - adapté à la production ?
- DB-Engines - Comparaison CouchDB vs. MongoDB
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.