J'ai utilisé MongoDB de manière intensive (au cours des 6 derniers mois), en construisant un système de gestion de données hiérarchiques, et je peux me porter garant à la fois de la facilité de configuration (installez-le, exécutez-le, utilisez-le !) et de la vitesse. Tant que vous pensez aux index avec soin, il peut absolument hurler, en termes de vitesse.
J'en déduis que Cassandra, en raison de son utilisation dans des projets à grande échelle comme Twitter, dispose d'une meilleure fonctionnalité de mise à l'échelle, bien que l'équipe MongoDB travaille sur la parité dans ce domaine. Je dois préciser que je n'ai pas utilisé Cassandra au-delà de la phase d'essai et que je ne peux donc pas me prononcer sur les détails.
Pour moi, lorsque nous avons évalué les bases de données NoSQL, le vrai changement a été l'interrogation - Cassandra est essentiellement un magasin clé/valeur géant, et l'interrogation est un peu compliquée (du moins par rapport à MongoDB), donc pour obtenir des performances, vous devez dupliquer un grand nombre de données comme une sorte d'index manuel. MongoDB, quant à lui, utilise un modèle de "requête par exemple".
Par exemple, disons que vous avez une collection (l'équivalent d'une table RDMS en langage MongoDB) contenant des utilisateurs. MongoDB stocke les enregistrements sous forme de documents, qui sont en fait des objets binaires JSON, par exemple
{
FirstName: "John",
LastName: "Smith",
Email: "john@smith.com",
Groups: ["Admin", "User", "SuperUser"]
}
Si vous voulez trouver tous les utilisateurs appelés Smith qui ont des droits d'administration, il vous suffit de créer un nouveau document (dans la console d'administration en utilisant Javascript, ou en production en utilisant le langage de votre choix) :
{
LastName: "Smith",
Groups: "Admin"
}
...et ensuite exécuter la requête. C'est tout. Il existe des opérateurs supplémentaires pour les comparaisons, le filtrage RegEx, etc., mais tout cela est assez simple, et la documentation basée sur le Wiki est assez bonne.
5 votes
Des statistiques officielles sur les performances sont disponibles. Cassandra vs MongoDB vs HBase
1 votes
>Beaucoup de lectures dans chaque requête, moins d'écritures régulières => Recherchez CQRS (séparez vos lectures de vos écritures probablement sans event sourcing mais vérifiez si vous pouvez mettre à jour votre modèle de lecture de manière asynchrone la synchronisation peut aussi fonctionner cela dépend de vos cas d'utilisation)
4 votes
C'est une excellente question en fait. Je me demande s'il existe une version actualisée de cette question ? Celle-ci est très ancienne maintenant