SQL contre noSQL (vitesse)
Quand les gens sont en comparant SQL et noSQL, et de conclure les avantages et inconvénients de chacun, ce que je n'ai jamais entendu quelqu'un parler de la vitesse.
N'est pas d'effectuer des requêtes SQL en général plus rapide que l'exécution de noSQL requêtes?
Je veux dire, pour moi, ce serait vraiment une conclusion évidente, parce que vous devriez toujours être en mesure de trouver quelque chose de plus rapide si vous savoir la structure de votre base de données que si vous ne le faites pas.
Mais les gens ne semblent jamais parler de cela, je veux donc savoir si ma conclusion est bon ou mauvais.
- Liées réponse: stackoverflow.com/a/11244674/841830
Vous devez vous connecter pour publier un commentaire.
La définition de systèmes noSQL est très large-une base de données qui n'utilise pas de SQL /n'est pas un SGBD.
Par conséquent, la réponse à votre question est, en bref: "ça dépend".
Certains systèmes noSQL sont fondamentalement juste persistante clé/valeur de stockages (comme Projet De Voldemort). Si vos questions sont du type "regardez en haut de la valeur pour une clé donnée", un système de ce type (ou au moins devrait être) plus rapide qu'un SGBDR, parce qu'il a seulement besoin d'avoir beaucoup moins de fonctionnalités.
Un autre type populaire de noSQL système est le document de base de données (comme CouchDB).
Ces bases de données ont pas de prédéfinis structure de données.
Leur avantage en termes de vitesse s'appuie fortement sur la dénormalisation et la création d'un format de données qui est adapté pour les requêtes que vous allez courir sur elle. Par exemple, pour un blog, vous pourriez économiser un billet de blog dans un document ainsi que ses commentaires. Cela réduit la nécessité pour les jointures et des recherches, faire vos requêtes plus rapides, mais il pourrait aussi réduire votre flexibilité concernant les requêtes.
Les personnes qui ont tendance à utiliser noSQL l'utiliser en particulier, car elle s'adapte à leur cas d'utilisation. Le fait d'être divorcé de la normale SGBDR tableau des relations et des contraintes, ainsi que de l'ACIDE-lité de données, il est très facile à faire courir beaucoup plus vite.
Envisager de Twitter, qui utilise NoSQL, car un utilisateur ne fait que très très peu de choses sur le site, ou un seul exactement - tweet. Et la simultanéité peut être considérée comme inexistante depuis (1) personne d'autre ne peut modifier votre tweet et (2) vous n'avez normalement pas être simultanément tweeter à partir de plusieurs appareils.
Comme Einstein dirais, la vitesse est relative.
Si vous avez besoin de stocker un maître/détail application simple (comme un panier), vous aurez besoin de faire plusieurs instructions Insert dans votre SQL application, vous aussi, vous allez obtenir un ensemble de Données d'informations lorsque vous effectuez une requête pour obtenir l'achat, si vous utilisez NoSQL, et vous l'utilisez bien, alors vous avez toutes les données pour une même commande dans un simple "document" (document si vous utilisez les termes de bases de données NoSQL comme djondb).
Donc, je pense vraiment que les performances d'une application peut être mesurée par le nombre de choses qu'il faut faire pour parvenir à une seule condition, si vous avez besoin de faire plusieurs Inserts pour stocker un ordre et il suffit d'une simple Insertion dans une base de données comme djondb ensuite, la performance sera 10x plus rapide dans le monde NoSQL, juste parce que vous êtes à l'aide de 10 fois moins d'appels à la couche de base de données, c'est tout.
Pour illustrer mon point, permettez-moi de lier un exemple que j'ai écrit il y a quelques temps sur les différences entre le NoSQL et SQL et des modèles de données: approche pour http://djondb.com/blog/?p=4, je sais que c'est une auto-référence, mais, fondamentalement, je l'ai écrit pour répondre à cette question que j'ai trouvé c'est la plus difficile question d'un SGBDR gars aurait pu et c'est toujours une bonne façon d'expliquer pourquoi le NoSQL est tellement différente de SQL monde, et pourquoi il va réaliser une meilleure performance à tout moment, non pas parce que nous utilisons des "nasa" de la technologie, c'est parce que NoSQL va permettre au développeur de faire moins... et plus, et moins de code = meilleure performance.
La réponse est: ça dépend. En règle générale, l'objectif de BASES de données NoSQL (pas de "requêtes") est l'évolutivité. SGBDR ont généralement peu dur limites à un certain moment (je parle des millions et des millions de lignes) où l'on pouvait pas mettre à l'échelle par les moyens traditionnels (Réplication, le regroupement, le partitionnement), et vous avez besoin de quelque chose de plus parce que vos besoins ne cesse d'augmenter. Ou même si vous parvenez à l'échelle, la configuration générale est assez compliqué. Ou vous pouvez échelle de lit, mais pas écrit.
Et les requêtes dépend de la mise en œuvre de votre serveur, le type de requête que vous faites, les colonnes de la table, etc... n'oubliez pas que les requêtes sont juste une partie de l'SGBDR.
moment de la requête de base de données relationnelles telles que SQL pour 1 000 personnes de données à 2000 ms et le graphique de la base de données comme neo4j
est de 2ms .si vous caisse plus de nœud 1000000 vitesse stable 2 ms