Question

Il y a eu beaucoup de discussions sur les bases de données NOSQL contre-révolutionnaire telles que Cassandra , Couchdb , Hypertable , MongoDB , Projet Voldemort , Bigtable , et beaucoup plus. En ce qui me concerne, les avantages les plus forts sont l'évolutivité, la performance et la simplicité.

Je considère sérieusement à suggérer d'utiliser une DB non relationnelle pour notre prochain projet. Toutefois, certaines équipes comprennent des fanatiques SMDBMS, afin de convaincre un commutateur difficile pourraient être impossibles dans certains cas simplement à cause de raisons émotionnelles. En outre, lorsqu'il s'agit de modèles de données complexes, je crois personnellement au pouvoir des SGBDM avec leurs mécanismes de mise en œuvre de soins de bas niveau.

Maintenant, voici ma question: Je me demandais si quelqu'un pouvait envisager sérieusement d'utiliser les deux DB de RDBMS et non relationnels dans un nouveau projet: le modèle de données complexe, mais pas de performance être mis en œuvre à l'aide d'un modèle relationnel et de DB, tandis que toutes les performances critiques, mais les modèles simples seraient mis en œuvre avec une DB non relationnelle. De plus, un tel changement de paradigme doux serait beaucoup plus facile à vendre à des membres de l'équipe très émotionnalisés qu'un dur.

Quelqu'un peut-il recommander une telle approche? Ou préférez-vous recommander une approche noire ou blanche, c'est-à-dire une approche relationnelle ou non relationnelle? Tous les commentaires Bienvenus!


P.s.: Toute idée si un tel mélange fonctionne bien avec le printemps et l'hibernation / jpa?

Était-ce utile?

La solution

ROB CONERY a récemment écrit à propos de son Expérience construisant son application Web populaire Tekpub avec MongoDb et MySQL, soulignant les forces des deux:

Les choses à haute lecture (informations de compte, productions et informations d'épisode) sont parfaites pour un type de chose "en ce moment" comme MongoDB. Le «ce qui s'est passé hier» est parfait pour un système relationnel.

à un niveau élevé, ROB rompt leurs données d'application en deux scopes: données d'exécution et données historiques. L'état actuel du panier d'achat d'un utilisateur, par exemple, est idéal pour rester à MongoDB. C'est un blob d'objet qui mute constamment. Garder un enregistrement historique de ce qui est entré et sorti du panier d'achat; quand c'est arrivé; L'état de la caisse est idéal pour les données relatives à la documentation dans MySQL.

Il résume avec ceci:

Cela fonctionne parfaitement. Je pourrais pas plus heureux avec notre configuration. C'est une maintenance incroyablement faible, nous pouvons le sauvegarder comme une autre solution et nous avons les données dont nous avons besoin lorsque nous en avons besoin.

Mise à jour de mai 2016 (6 ans plus tard)

Cela ne devient que plus vrai au cours des 6 dernières années. Il est maintenant courant de voir les bases de données NOSQL alimentant des magasins transactionnels et des bases de données relationnelles traditionnelles alignement des bases de données analytiques.

Autres conseils

J'utilise les deux.RDBMS est bon pour une analyse, des rapports et des données complexes accessibles de différentes manières par plusieurs utilisateurs.NOSQL est génial lorsque je regarde une donnée d'une perspective d'un seul utilisateur.Une question que je me demande est: "Qui accède à ces données?".Si la réponse est 1 utilisateur, j'utilise NOSQL pour la stocker.

Bien sûr, il y a d'autres moments où il est approprié, mais ce n'est qu'un exemple.

Comme vous l'avez mentionné, NOSQL est un stockage plus simple, et cela pourrait vous empêcher de disposer du code complexe droit pour maintenir des données ... Par exemple, stocker une liste de connexions.

Les bases de données de clé de clé non relationnelles sont mieux utilisées pour le stockage et la mise en cache blob.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top