Qu'aimez-vous le plus à propos de CouchDB?
Les avantages de CouchDB sont :-
CouchDB permet la réplication facile de lui-même, ce qui conduit au partage de données entre différents appareils.
CouchDB permet une structure de données flexible, ce qui signifie que tout type de données peut être stocké ensemble.
CouchDB utilise l'API HTTP pour une communication facile entre les bases de données.
ReduceMap permet d'optimiser la combinaison de données.
Base de données orientée document ! Cela seul en vaut la peine : pouvoir décrire votre enregistrement dans un document JSON, puis l'indexer est ÉNORME.
Vous pouvez stocker le MÊME document dans plusieurs instances de base de données, et grâce au moteur de CouchDB, ce n'est pas un problème.
RAPIDE : L'accès au JSON est programmatique et facile à analyser, ce qui le rend facile à choisir.
Il peut se répliquer et se synchroniser avec les navigateurs web via PouchDB. Cela vous permet de garder une copie synchronisée de votre base de données côté client, ce qui offre un accès aux données beaucoup plus rapide que ne le permettraient des requêtes HTTP continues, et permet une utilisation hors ligne.
Support simple de Map/Reduce. Le système M/R vous permet de traiter des téraoctets de documents en parallèle, d'enregistrer les résultats, et de ne reprocesser que les documents qui ont changé lors des mises à jour ultérieures. Bien que moins puissant que Hadoop, c'est un système de requête facile à utiliser et difficile à rater.
Support de Sharding et Clustering. Depuis CouchDB 2.0, il prend en charge le clustering et le sharding des documents entre les instances sans avoir besoin d'un répartiteur de charge pour déterminer où les requêtes doivent aller.
La réplication de maître à maître vous permet de cloner, de sauvegarder en continu et d'écouter les changements via le protocole de réplication, même sur des liaisons WAN peu fiables. Avis collecté par et hébergé sur G2.com.
Que n’aimez-vous pas à propos de CouchDB?
Les inconvénients de CouchDB sont :-
CouchDB prend de l'espace supplémentaire pour les frais généraux, ce qui est un inconvénient majeur par rapport à d'autres bases de données.
Créer des requêtes aléatoires, qui n'ont pas de vue, est coûteux.
Pas de recherche en texte intégral intégrée
Bien qu'il existe des moyens : couchdb-lucene, elasticsearch
plus quelques autres :
Il ne prend pas en charge les transactions
Cela signifie que l'application de l'unicité d'un champ sur tous les documents n'est pas sûre, par exemple, garantir qu'un nom d'utilisateur est unique. Une autre conséquence de l'incapacité de CouchDB à prendre en charge la notion typique d'une transaction est que des opérations comme l'incrémentation/décrémentation d'une valeur et sa sauvegarde sont également dangereuses. Il n'y a pas beaucoup de cas où nous voudrions simplement incrémenter/décrémenter une valeur sans pouvoir stocker les documents individuels séparément et les agréger avec une vue.
Données relationnelles
Si les données ont beaucoup de sens à être en 3ème forme normale, et que nous essayons de suivre cette forme dans CouchDB, nous allons rencontrer beaucoup de problèmes. Une solution possible à ce problème est avec les collations de vues, mais nous pourrions constamment nous battre avec le système. Si les données peuvent être reformatées pour être beaucoup plus dénormalisées, alors CouchDB fonctionnera bien.
Entrepôt de données
Le problème est que les vues temporaires dans CouchDB sur de grands ensembles de données sont vraiment lentes. Utiliser CouchDB et des vues permanentes pourrait bien fonctionner. Cependant, dans la plupart des cas, une base de données orientée colonne de quelque sorte est un bien meilleur outil pour le travail d'entreposage de données. Avis collecté par et hébergé sur G2.com.