MongoDB vs MySQL
J'ai utilisé pour construire Ruby on Rails apps avec MySQL.
MongoDB actuellement deviennent de plus en plus célèbre et je suis maintenant de commencer à lui donner un essai.
Le problème est, je ne connais pas la théorie sous-jacente de la façon dont MongoDB est de travail (am à l'aide de mongoid gem si c'question)
Donc je voudrais avoir une comparaison des performances entre l'utilisation de MySQL+ActiveRecord et le modèle généré par mongoid gem, quelqu'un pourrait-il m'aider à comprendre?
- Vous pourriez trouver cela drôle et intéressant à écouter xtranormal.com/watch/6995033/mongo-db-is-web-scale
Vous devez vous connecter pour publier un commentaire.
De l'article intitulé: Ce que le diable êtes-vous réellement en utilisant le NoSQL pour? fait un très bon travail en présentant les avantages et les inconvénients de l'utilisation de NoSQL.
Edit: Également lire http://blog.fatalmind.com/2011/05/13/choosing-nosql-for-the-right-reason/ blog trop
Re-edit: j'ai trouvé quelques récents (publiés en 2014) sur ce sujet que je considère comme pertinentes: Ce qui est à gauche de NoSQL?
Je ne connais pas beaucoup de la théorie sous-jacente. Mais c'est les conseils que j'ai obtenu: seule l'utilisation de MongoDB si vous l'exécutez à travers de multiples serveurs; c'est quand il va briller. Comme je le comprends, le NoSQL mouvement est apparu dans aucune petite partie à cause de la douleur de l'équilibrage de charge relationnelle des bases de données sur plusieurs serveurs. Donc, si vous êtes d'hébergement de votre application sur un serveur, MySQL devra être le choix préféré.
Les bonnes gens plus à l' La Doctrine de projet récemment écrit un très utile post de blog sur le sujet.
De ce que j'ai lu jusqu'à présent... voici mon prendre sur elle.
Standard SQL métiers de la baisse de rendement pour la fonctionnalité de la richesse... c'est à dire qu'il vous permet de faire des Jointures et des Transactions sur des ensembles de données (tables/collections, si vous voulez) entre autres choses.
Cela permet à un développeur d'application de pousser une partie de la complexité de l'application dans la base de données de la couche. Cela a ses avantages de ne pas avoir à vous soucier de l'intégrité des données et le reste de l'ACIDE propriétés par l'application en fonction des technologies éprouvées.
L'absence d'une évolutivité extrême fonctionne pour à peu près tous les projets, tant que l'on peut gérer pour maintenir la demande de travail dans le délai prévu pour l'limites, ce qui peut parfois entraîner à avoir à acheter de haute performance et le coût élevé de systèmes de base de données.
D'autre part, Mongo DB, délibérément exclut une grande partie de la complexité inhérente associée à des bases de données relationnelles, il y en permettant de meilleures performances évolutives.
Cette approche oblige le développeur de l'application pour re-architecte de l'application pour contourner le manque de relationnel fonctionnalités... ce qui en soi est une bonne chose, mais l'effort est généralement vaut le coup si vous avez des besoins d'extensibilité. Veuillez noter qu'avec MongoDB selon les exigences en matière de données.w.r.t les propriétés ACID, l'application aura à l'étape et traiter si nécessaire.