MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Avantages et inconvénients de MongoDB ?

Quelques généralités sur MongoDB

Avantages :

  • sans schéma. Si vous avez un schéma flexible, c'est idéal pour un magasin de documents comme MongoDB. Ceci est difficile à mettre en œuvre de manière performante dans RDBMS
  • facilité d'évolutivité. Mettre à l'échelle les lectures à l'aide d'ensembles de réplicas. Mettre à l'échelle les écritures à l'aide du partitionnement (équilibrage automatique). Il suffit d'allumer une autre machine et c'est parti. Ajouter plus de machines =ajouter plus de RAM sur laquelle distribuer votre ensemble de travail.
  • coût. Cela dépend bien sûr du RDBMS, mais MongoDB est gratuit et peut fonctionner sous Linux, 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, performances plus rapides =lancer et oublier les insertions dans MongoDB, performances plus lentes =attendre que l'insertion ait été répliquée sur plusieurs nœuds avant de revenir)

Inconvénients :

  • La taille des données dans MongoDB est généralement plus élevée en raison, par ex. chaque document a des noms de champs qui y sont 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/analyses de données) est correct, mais pas extrêmement rapide. Donc, si cela est nécessaire, quelque chose comme Hadoop peut devoir être ajouté au mélange
  • moins d'informations à jour disponibles/produit en évolution rapide

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 points principaux).

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 sur ce qui vous convient le mieux pour une exigence donnée.