Quelques points généraux sur MongoDB
Avantages:
- sans schéma. Si vous avez un schéma flexible, cela est idéal pour un magasin de documents comme MongoDB. Ceci est difficile à implémenter de manière performante dans le SGBDR
- facilité de mise à l'échelle. Mettre à l'échelle les lectures à l'aide de jeux de réplicas. Mettre à l'échelle les écritures à l'aide du partage (équilibrage automatique). Allumez simplement une autre machine et c'est parti. Ajouter plus de machines = ajouter plus RAM sur lequel distribuer votre jeu de travail.
- coût. Cela dépend du SGBDR bien sûr, mais MongoDB est gratuit et peut fonctionner sous Linux, idéal pour fonctionner avec un kit de produits moins cher.
- vous pouvez choisir le niveau de cohérence que vous souhaitez en fonction de la valeur des données (par exemple, des performances plus rapides = déclencher et oublier les insertions dans MongoDB, des performances plus lentes = attendre que l'insertion ait été répliquée sur plusieurs nœuds avant de revenir)
Les inconvénients:
- La taille des données dans MongoDB est généralement plus élevée en raison, par exemple, chaque document a des noms de champs stockés
- moins de flexibilité avec les requêtes (par exemple, pas de JOIN)
- pas de prise en charge des transactions - certaines opérations atomiques sont prises en charge, au niveau d'un seul document
- pour le moment Map/Reduce (par exemple pour faire des agrégations/analyse de données) est OK, mais pas extrêmement rapide. Donc, si cela est nécessaire, quelque chose comme Hadoop devra peut-être être ajouté au mélange
- moins d'informations à jour disponibles/produit évoluant rapidement
J'ai récemment blogué mes pensées sur MongoDB en tant que personne venant de l'arrière-plan de SQL Server, donc cela pourrait vous intéresser (ci-dessus ne sont que quelques-uns des principaux points).
Si vous cherchez une réponse "Est-ce que MongoDB est meilleur que RDBMS" - alors à mon humble avis, il n'y a pas de réponse. Les technologies NoSQL comme MongoDB offrent une alternative, qui complète les technologies RDBMS. L'un peut être mieux adapté à un objectif particulier que l'autre, il s'agit donc de faire un appel à ce qui vous convient le mieux pour une exigence donnée.