web-dev-qa-db-fra.com

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 SQL.

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

115
christophmccann

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

Les bases de données SQL sont comme automatiques transmission et les bases de données NoSQL sont comme transmission manuelle. Une fois que vous passez à NoSQL, vous devenez responsable de beaucoup de travail que le système prend en charge automatiquement dans un système de base de données relationnelle. Similaire à ce qui se passe lorsque vous choisissez manuel sur la transmission automatique. Deuxièmement, NoSQL vous permet d’en avoir plus performances hors du système de éliminer beaucoup de contrôles d'intégrité fait par les bases de données relationnelles du niveau base de données. Encore une fois, ceci est similaire comment vous pouvez obtenir plus de performances sortir de votre voiture en conduisant un manuel transmission versus automatique véhicule de transmission.

Cependant, la similitude la plus notable est comme la plupart d’entre nous ne pouvons pas vraiment profiter des avantages d'un véhicule à transmission manuelle parce que la majorité de notre conduite est assise dans la circulation sur le chemin de et vers travail, il y a une dure réalité similaire en ce que la plupart des sites ne sont pas chez Google ou L’échelle de Facebook et n’ont donc aucun besoin pour une Bigtable ou Cassandra.

À cela, je ne peux 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 devrez faire face à un nouvel ensemble de problèmes et apprendre différents concepts et meilleures pratiques. Bien que ce soit merveilleux en soi (je joue à la maison avec MongoDB et que je l’aime beaucoup), c’est un coût que vous devez calculer pour estimer le travail de ce projet et qui comporte des risques inconnus tout en promettant des avantages inconnus. Il sera très difficile de juger si vous pouvez réaliser le projet à temps et avec la qualité que vous voulez/avez besoin pour réussir, s'il est basé sur une technologie que vous ne connaissez pas.

Maintenant, si vous avez dans votre équipe un expert dans le domaine NoSQL, alors jetez-y un coup d'oeil. Mais sans aucune expertise de l'équipe, ne vous fiez pas à NoSQL pour un nouveau projet commercial.

Mise à jour: Juste pour jeter de l'essence dans le feu que vous avez commencé, voici deux articles intéressants de personnes du camp SQL. :-)

Je ne peux pas attendre que NoSQL meure (l'article original a disparu, voici une copie )
Combattre la mentalité NoSQL, bien que ce ne soit pas un anti-NoSQL Piece
Update: Eh bien voici un article intéressant sur NoSQL
Donner sens à NoSQL

175
Franci Penov

Il semble que seules les solutions réelles d’aujourd’hui tournent autour de l’extension ou de la fragmentation. Toutes les bases de données modernes (NoSQL et NewSQL) prennent en charge la mise à l’échelle horizontale immédiatement, au niveau de la couche base de données, sans que l’application ait besoin de code de fragmentation ou autre. 

Malheureusement, pour le bon vieux MySQL, le sharding n'est pas fourni "prêt à l'emploi". ScaleBase (disclaimer: j'y travaille) est un fabricant d'une solution complète de scale-out une "machine à découper automatique" si vous le souhaitez. ScaleBae analyse vos données et votre flux SQL, les divise en plusieurs nœuds de base de données et s’agrège au moment de l’exécution - pour que vous n’ayez pas à le faire! Et c'est en téléchargement gratuit.

Ne vous méprenez pas, les logiciels NoSQL sont excellents, ils sont nouveaux, ils offrent plus de choix et le choix est toujours bon !! Mais choisir NoSQL a un prix, assurez-vous de pouvoir le payer ... 

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

J'espère que ça a aidé.

3
Doron Levari

Une des meilleures options est de choisir MongoDB (NOSql dB) qui prend en charge l’évolutivité. Stocke de grandes quantités de données, mais des données volumineuses sous la forme de documents, contrairement aux lignes et aux tableaux de SQL. pour garantir que les données garantissent que plusieurs serveurs ont un serveur de base de données principal comme base. Indépendant de la langue . Flexible à utiliser 

0
Kiranmai Harshi