Les raisons pour et contre le déplacement à partir de SQL server pour MongoDB
Je sais que c'est une grande question et ce n'est pas une réponse oui ou non, mais nous développons des applications web et êtes à la recherche dans l'utilisation de MongoDB pour notre persistance de la solution. Combinant MongoDB la Norme pour objet de stockage.
Ce que je veux poser est quels sont les pièges avez-vous vécu le fait de passer de la SQL de mongo? Quand est-mongo tout simplement pas la bonne solution et est de mongodb avantages assez pour déplacer le développement de SQL?
Vous devez vous connecter pour publier un commentaire.
À mon avis, le format des données doit être la principale préoccupation lors du choix d'un backend de stockage. Avez-vous des données relationnelles dans la nature? Si oui, peut-elle et est-ce une bonne idée de modéliser les données dans les documents? La modélisation des données est aussi importante dans un document base de données dans une base de données relationnelle, il vient de le faire différemment. Combien de types d'objets et comment sont-ils liés? Peut DBrefs dans Mongodb faire l'affaire ou vous manquez les clés étrangères tellement c'est douloureux? Quels sont vos modèles d'accès pour les données? Êtes-vous juste de l'extraction de données d'un type filtrée par la valeur d'un champ, ou avez-vous des complexes de l'extraction de modes?
Avez-vous besoin d'ACIDE intégrité transactionnelle? Le domaine d'appliquer beaucoup de contraintes sur les données? Avez-vous besoin de l'évolutivité facteur d'un document de la base de données ou est-ce juste une "cool" d'avoir ce truc?
Quels sont vos cohérence et l'intégrité des données requises? Certains les solutions NoSQL et MongoDB, en particulier, sont assez lâche sur la cohérence écriture afin d'obtenir les performances. Le NoSQL est pas uniforme en paysage et d'autres produits, par exemple, CouchDB a d'autres caractéristiques dans ce département. Certains sont réglables trop.
Ce sont toutes des questions qui doivent aller dans le choix du lieu de stockage.
Certaines Expériences
contre
durabilité (lire
http://www.mikealrogers.com/2010/07/mongodb-performance-durability)
pros
J'ai été farfouillé avec elle quelques jours maintenant. C'est ce que je peux dire à ce sujet:
POUR:
CONTRE:
Une chose que j'ai remarqué qui manquent dans les tutoriels:
Initialiser vos listes à l'intérieur de votre objet, sinon il renvoie une erreur lors de la tentative .enregistrer(yourobj). La chose la plus sûre à faire est d'écrire un constructeur dans votre classe qui fait que vous n'avez pas de NULLE objets à l'intérieur de votre objet. De cette façon, vous n'obtiendrez pas une erreur si vous oubliez quelque chose.
Votre kilométrage peut varier, mais il s'agit d'un graphique j'ai mis en place pour comparer la vitesse de mise à jour de plusieurs "lignes de la table" (non-hiérarchique plat document dans MongoDB) avec et sans index pour nous donner une idée de la façon dont elle sera mise à l'échelle pour notre application.
Vous pourriez trouver quelques avantages et les inconvénients de l'utilisation d'une base de données NoSQL (MongoDB) dans cette Mise en route avec le NoSQL. Un résumé rapide serait: un modèle de données différent (pense que si un mappage à partir du modèle d'objet à ce "nouveau modèle" est nécessaire, il fonctionne bien), un autre modèle de requêtes (MongoDB requêtes sont assez capables au moins en comparaison avec d'autres), pas de transactions (vous avez quelques opérations atomiques si).
De toute façon, de mon point de vue, le changement le plus important est le modèle de données et la façon dont vous concevez votre application avec cette nouvelle approche.
J'ai été en utilisant MongoDB sur l'Atlas cloud AWS pour de nombreux mois et deux bénéfices majeurs se distinguent: