70 votes

Avantages et inconvénients de MongoDB ?

Quelqu'un pourrait-il me dire quels sont les avantages et les inconvénients de mongodb, en particulier par rapport à la base de données relationnelle ? y compris ACID, l'évolutivité, le débit, l'utilisation de la mémoire principale, les performances d'insertion/de requête et la taille de l'index, etc.

120voto

AdaTheDev Points 53358

Quelques points généraux sur MongoDB

Pour :

  • sans schéma. Si vous avez un schéma flexible, c'est idéal pour un magasin de documents comme MongoDB. C'est difficile à mettre en œuvre de manière performante dans un SGBDR.
  • la facilité de mise à l'échelle. Faites évoluer les lectures en utilisant des ensembles de répliques. Faites évoluer les écritures en utilisant le sharding (équilibrage automatique). Il suffit d'allumer une autre machine et c'est parti. Plus de machines = plus de RAM sur laquelle distribuer votre ensemble de travail.
  • coût. Cela dépend du SGBDR, bien sûr, mais MongoDB est gratuit et peut fonctionner sous Linux, ce qui est idéal pour fonctionner sur un kit de base moins cher.
  • vous pouvez choisir le niveau de cohérence que vous souhaitez en fonction de la valeur des données (par exemple, pour des performances plus rapides, il suffit de lancer et d'oublier les insertions dans MongoDB ; pour des performances plus lentes, il faut attendre que l'insertion ait été répliquée sur plusieurs nœuds avant de revenir).

Cons :

  • La taille des données dans MongoDB est généralement plus élevée car, par exemple, les noms des champs sont stockés dans chaque document.
  • moins de flexibilité avec les requêtes (par exemple, pas de JOINs)
  • aucun support pour les transactions - certaines opérations atomiques sont supportées, au niveau d'un seul document
  • Pour l'instant, Map/Reduce (par exemple pour faire des agrégations/analyses de données) est correct, mais pas d'une rapidité fulgurante. Si cela est nécessaire, il faudra peut-être ajouter quelque chose comme Hadoop.
  • moins d'informations actualisées disponibles/un produit qui évolue rapidement

J'ai récemment J'ai publié mes pensées sur le blog sur MongoDB en tant que personne venant de l'arrière-plan de SQL Server, donc cela pourrait vous intéresser (les points ci-dessus ne sont que quelques-uns des principaux).

Si vous cherchez une réponse à la question "MongoDB est-il meilleur qu'un SGBDR", alors, à mon avis, il n'y a pas de réponse. Les technologies NoSQL comme MongoDB offrent une alternative, qui complète les technologies RDBMS. L'une peut être mieux adaptée que l'autre à un objectif particulier. Il s'agit donc de déterminer ce qui vous convient le mieux pour une exigence donnée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X