134 votes

SQL (MySQL) vs NoSQL (CouchDB)

Je suis en train de concevoir une application hautement évolutive qui doit stocker beaucoup de données. Par exemple, il stockera beaucoup d'informations sur les utilisateurs, puis beaucoup de messages, commentaires, etc. J'ai toujours utilisé MySQL auparavant, mais maintenant, je souhaite essayer quelque chose de nouveau, tel que couchdb ou similaire, qui n'est pas du code SQL.

Quelqu'un a-t-il des idées ou des conseils à ce sujet?

203voto

Franci Penov Points 45358

Voici une citation d'un récent billet de blog de Dare Obasanjo.

Les bases de données SQL sont comme automatique la transmission et les bases de données NoSQL sont comme la transmission manuelle. Une fois que vous basculer vers le NoSQL, vous devenez responsable de beaucoup de travail que l' le système prend en charge automatiquement dans un système de base de données relationnelle. Similaire à ce qui se passe quand vous prenez manuel au cours de la transmission automatique. Deuxièmement, NoSQL permet d'augmenter l' les performances du système par d'éliminer un grand nombre de contrôles d'intégrité fait par des bases de données relationnelles à partir de la niveau de base de données. De nouveau, ce qui est similaire comment vous pouvez obtenir plus de performance de sortir de la voiture par la conduite d'un manuel la transmission ou automatique la transmission du véhicule.

Cependant, le plus remarquable similitude est que, comme la plupart d'entre nous ne peut pas vraiment profitez des avantages d'une transmission manuelle véhicule car la majorité de notre ligne de conduite est assis de la circulation sur le chemin de l' de travail, il y a la dure réalité dans la plupart des sites ne sont pas sur Google ou Facebook de l'échelle et n'ont donc pas besoin pour un Bigtable ou Cassandra.

À qui je peux seulement ajouter que le fait de passer de MySQL, où vous avez au moins une expérience, à CouchDB, où vous n'avez aucune expérience, signifie que vous aurez à traiter avec un tout nouvel ensemble de problèmes et apprendre les différents concepts et les meilleures pratiques. Tout par lui-même ce qui est magnifique (je joue à la maison avec MongoDB et l'aime beaucoup), il sera un coût que vous avez besoin pour calculer lors de l'estimation des travaux pour ce projet, et apporte des risques inconnus, tout en promettant un inconnu avantages. Il sera très difficile de juger si vous pouvez faire le projet dans les délais et avec la qualité que vous voulez/besoin pour réussir, si il est basé sur une technologie que vous ne connaissez pas.

Maintenant, si vous avez de l'équipe un expert dans le NoSQL champ, puis par tous les moyens de prendre un bon coup d'oeil. Mais sans l'expertise de l'équipe, ne pas sauter sur le NoSQL pour un nouveau projet commercial.

Mise à jour: il suffit de jeter un peu d'essence dans le feu ouvert vous aider, voici deux articles intéressants de personnes sur le SQL camp. :-)

Je ne Peux pas Attendre pour le NoSQL Mourir
Lutte contre Le NoSQL état d'esprit, même Si Ce N'est pas un anti-NoSQL Pièce
Mise à jour: eh Bien, voici un article intéressant sur le NoSQL
Sens de NoSQL

17voto

Nathan Hurst Points 938

Voici un guide visuel des systèmes NoSQL illustrant les principaux compromis, le plus important étant de choisir deux options parmi les suivantes: cohérence, disponibilité et tolérance de partition.

10voto

Shubham Abrol Points 76

Ce sont quelques points qui nous donne une certaine différence entre SQL et les Bases de données NOSQL.

  1. Les bases de données SQL sont principalement appelés comme les Bases de données Relationnelles (SGBDR); alors que les bases de données NoSQL sont principalement appelés en tant que non-relationnelles ou de base de données distribuée.
  2. Les bases de données SQL prédéfinies schéma alors que les bases de données NoSQL ont dynamiques du schéma de données non structurées.
  3. Les bases de données SQL sont verticalement évolutive alors que les bases de données NoSQL sont extensible horizontalement. SQL bases de données sont mises à l'échelle par l'augmentation de la puissance du matériel.
  4. Dans le cas de l'évolutivité: Dans la plupart des situations typiques, les bases de données SQL sont verticalement évolutive. Vous pouvez gérer l'augmentation de la charge par l'augmentation de la CPU, de la RAM, SSD, etc, sur un seul serveur. D'autre part, les bases de données NoSQL sont extensible horizontalement. Vous pouvez simplement ajouter un peu plus de serveurs facilement dans votre base de données NoSQL de l'infrastructure pour gérer le grand trafic.
  5. Pour les requêtes complexes: les bases de données SQL sont un bon ajustement pour la requête complexe intensif de l'environnement alors que les bases de données NoSQL sont pas un bon ajustement pour des requêtes complexes. Sur un haut niveau, le NoSQL n'ont pas d'interfaces standard pour effectuer des requêtes complexes, et les requêtes dans les bases NoSQL sont pas aussi puissant que langage de requête SQL.

4voto

Doron Levari Points 102

Semble comme seules les vraies solutions aujourd'hui tournent autour de la mise à l'échelle ou de la fragmentation. Modernes, toutes les bases de données (NoSQLs ainsi que NewSQLs) de support de mise à l'échelle horizontale à droite de la boîte, à la couche de base de données, sans avoir besoin de la demande de partage de code ou quelque chose.

Malheureusement, pour la confiance de bons vieux MySQL, la fragmentation n'est pas fourni "out of the box". ScaleBase (disclaimer: j'y travaille) est un fabricant d'une complète de la gamme de solution "le partage automatique de la machine" si vous le souhaitez. ScaleBae l'analyse de vos données et SQL des flux, de la divise les données à l'échelle de DB nœuds, et des agrégats dans l'exécution, de sorte que vous n'aurez pas à! Et c'est en téléchargement gratuit.

Ne m'obtenez pas le mal, NoSQLs sont grands, ils sont de nouveaux, de nouveaux est plus de choix et le choix est toujours bon!! Mais le choix NoSQL vient avec un prix, assurez-vous que vous pouvez le payer...

Vous pouvez voir ici quelques plus de données sur MySQL, NoSQL...: http://www.scalebase.com/extreme-scalability-with-mongodb-and-mysql-part-1-auto-sharding

Espérons que cela a aidé.

3voto

free Points 42

Vous voudrez peut-être aussi lire cet article: au revoir, CouchDB .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X