2012-10-13 2 views
2

Je cherche à construire un type de réseau social. Maintenant, cela ne va pas être l'échelle de Facebook, mais je pense qu'il pourrait avoir un grand nombre de personnes. Je veux construire le système avec l'évolutivité à l'esprit. Il doit également être capable de gérer beaucoup de données et de relations. J'espérais que quelqu'un pourrait me donner une direction de ce que DB à utiliser. J'ai lu beaucoup d'articles, mais ils ont généralement au moins un an et les bases de données changent rapidement, donc je ne sais pas si les choses que les gens disent sont vraies. J'aime vraiment la base de données riak car elle est vraiment facile à mettre à l'échelle et j'aime le fait que tous les nœuds peuvent lire et écrire. L'une de mes préoccupations concerne les relations que les données vont avoir. Cependant, je crois que les liens dans riak vont résoudre ce problème. Mais en utilisant des liens cela va diminuer la performance. J'espère juste que quelqu'un pourrait me donner une direction avec l'expérience et la façon dont les bases de données sont actuellement.Quels sont nosql db?

Répondre

1

Cette question est probablement ouverte à trop de débats. Mais tous pareil; il semble que vous devriez rester à l'écart de la simple valeur-clé comme dire, redis, et vers quelque chose qui est plus un magasin d'objets pour les métadonnées riches, voire relationnelles que vous avez; comme MongoDB.

+0

Merci pour la réponse. J'ai lu que mongodb est un peu difficile à mettre à l'échelle et en plus, il ne gère pas beaucoup de données très bien. Une autre chose à noter est les relations. Je sais que vous pourriez garder les relations dans mongodb dans un seul objet (probablement par ids) mais ils ont une quantité limitée d'espace (16mb maintenant si je me souviens bien) donc à un moment donné cela peut être un problème. – ngreenwood6

+1

Je n'ai pas de source, mais je me souviens de notre service des opérations. disant que Mongo ne pouvait contenir que 1 million de disques ou quelque chose comme ça. J'espère ne pas déclencher une guerre de flamme. Mongo peut très bien faire des relations, mais vous devez maintenir votre intégrité. Redis est trop simple pour ce dont vous avez besoin (magasin de clé/valeur). J'irais avec mysql ou mongodb. Je ne suis pas sûr de couchdb. – chovy

2

Il existe plusieurs commentaires sur ce sujet: by thoughtworks (et certains dans le livre de Fowler), et certains dans Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparison. Selon eux, vous auriez besoin de "base de données graphique" ou "Distributed Peer Store" (Riak est répertorié ici), ou, ce qui serait mieux - une combinaison d'entre eux. Si la performance est votre principale préoccupation, je suggère également de commencer à modéliser des scénarios très chargés et voir ce qui se passe.

+0

Merci pour la réponse. Je vais certainement faire des tests de charge élevée. Je veux juste affiner mes choix avant de me lancer dans cette voie. Comme pour descendre à 2 ou 3. Ouais riak est vraiment intéressant pour moi. Avez-vous des commentaires sur l'efficacité des relations? – ngreenwood6

+0

@ ngreenwood6 juste avant d'entamer une discussion - pourriez-vous décrire un modèle de données attendu dans votre question? Cela préciserait un peu et restreindrait «beaucoup de données et de relations» à une question plus concrète. – mikalai