Je suis en train de concevoir une application hautement évolutive qui doit stocker beaucoup de données. Juste par exemple, il stockera beaucoup sur les utilisateurs et ensuite des choses comme beaucoup de leurs messages, commentaires, etc. J'ai toujours utilisé MySQL avant mais maintenant je suis prêt à essayer quelque chose de nouveau comme couchdb ou similaire qui n'est pas SQL.
Quelqu'un a-t-il des idées ou des conseils à ce sujet?
Réponses:
Voici une citation d'un récent article de blog de Dare Obasanjo .
À quoi je ne peux ajouter que le passage de MySQL, où vous avez au moins une certaine expérience, à CouchDB, où vous n'avez aucune expérience, signifie que vous devrez faire face à un tout nouvel ensemble de problèmes et apprendre différents concepts et meilleures pratiques. Bien que cela soit merveilleux en soi (je joue à la maison avec MongoDB et l'aime beaucoup), ce sera un coût que vous devrez calculer lors de l'estimation du travail pour ce projet, et 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 l'équipe un expert dans le domaine NoSQL, alors jetez-y un coup d'œil. Mais sans aucune expertise de l'équipe, ne sautez pas sur NoSQL pour un nouveau projet commercial.
Mise à jour : Juste pour jeter de l'essence dans le feu ouvert que vous avez allumé, voici deux articles intéressants de personnes du camp SQL. :-)
Je ne peux pas attendre pour NoSQL to Die (article original est allé, voici une copie ) La
lutte contre la NoSQL Mindset, sans que cela soit une pièce anti-NoSQL
Mise à jour : Eh bien est ici un article intéressant sur NoSQL
Making Sense of NoSQL
la source
Il semble que seules les vraies solutions aujourd'hui tournent autour de la mise à l'échelle ou du partitionnement. Toutes les bases de données modernes (NoSQL et NewSQL) prennent en charge la mise à l'échelle horizontale dès la sortie de la boîte, au niveau de la couche de base de données, sans que l'application ait besoin d'un code de partitionnement ou quelque chose.
Malheureusement, pour le bon vieux MySQL de confiance, le sharding n'est pas fourni «prêt à l'emploi». ScaleBase (avertissement: j'y travaille) est un fabricant d'une solution complète de scale-out, une "machine de partitionnement automatique" si vous le souhaitez. ScaleBae analyse vos données et votre flux SQL, répartit les données entre les nœuds de base de données et les agrège au moment de l'exécution - vous n'aurez donc pas à le faire! Et c'est un téléchargement gratuit.
Ne vous méprenez pas, les NoSQL sont excellents, ils sont nouveaux, le nouveau est 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 données supplémentaires sur MySQL, NoSQL ...: http://www.scalebase.com/extreme-scalability-with-mongodb-and-mysql-part-1-auto-sharding
J'espère que cela a aidé.
la source
L'une des meilleures options est d'opter pour MongoDB (NOSql dB) qui prend en charge l'évolutivité.Stocke de grandes quantités de données, rien que des données volumineuses sous la forme de documents contrairement aux lignes et aux tables en sql.C'est plus rapide qui suit le partage des données. pour garantir la garantie des données qui maintient plusieurs serveurs ayant le serveur de base de données principal comme base. Indépendant de la langue. Utilisation flexible
la source