2011-03-17 5 views
0

J'écris un serveur personnalisé, qui devrait être très performant. Il a 100.000-600.000 clients connectés, et comme 10 millions d'enregistrements stockés. La base de données s'exécutera sur un seul serveur.Quelle base de données noSQL choisir pour un démon réseau?

Le code du serveur est réalisé via un framework torsadé (en python). Maintenant, je l'ai fait utiliser MySQL, mais je pense qu'une base de données NoSQL serait beaucoup plus efficace (pas de requêtes complexes, beaucoup de changements simples d'écritures/timestamp et beaucoup de lectures simples).

Quelle base de données NoSQL devrais-je choisir? L'indexation facile serait un plus, je veux l'option de rechercher la base de données à partir d'un système d'administration, créer des groupes à partir de journaux contenant un mot-clé spécifique et des trucs comme ça.

J'ai jeté un oeil à Cassandra et MongoDB, MongoDB m'a semblé plus facile d'entrer/utiliser pour moi.

Merci pour l'aide!

Répondre

1

En ce qui concerne la courbe d'apprentissage pure, MongoDB s'est positionné comme une alternative très conviviale à MySQL. Cassandra est une bête très différente et aura une courbe d'apprentissage plus élevée. Cela dit, les deux ont le potentiel de résoudre votre problème en fonction de ce que vous décrivez.

+0

Merci, je vais m'en tenir à MongoDB. Ça a l'air très confortable. – maxedmelon

1

Vous avez des exigences assez simples: indexation facile, recherches arbitraires, regroupement par mots-clés, etc. - à peu près tous les systèmes NoSQL fonctionneraient. Cela dépend vraiment des technologies avec lesquelles vous êtes à l'aise. Comme C#? Ensuite, allez avec RavenDB - il peut même ajouter automatiquement des indices lorsque vous exécutez des requêtes. Comme Erlang? Alors vous êtes un monstre, mais vous devriez aller avec CouchDB. Comme Javascript et JSON? Allez avec MongoDB.

Personnellement, j'aime vraiment Mongo, car il se sent comme un adorable hybride de bases de données SQL et NoSQL. Vous pouvez en indexer l'enfer (et obtenir des performances incroyables!), Ce qui en fait presque un RDBMS. Vous pouvez également l'utiliser comme un magasin de clé/valeur, et l'utiliser comme une "hashtable géante dans le ciel". Toujours, YMMV. Jouez avec eux et voyez ce qui fonctionne pour vous.

0

Cassandra est vraiment conçu pour plusieurs nœuds de serveur, offrant une réplication transparente. Vous n'obtiendrez donc pas la meilleure valeur avec un hôte serveur unique. Cassandra est également conçu principalement pour la grande échelle (et sacrifie l'indexation et les requêtes flexibles en conséquence). 10 millions d'enregistrements ne sont pas vraiment très gros, donc vous pouvez vous permettre d'essayer quelque chose de plus flexible mais moins évolutif.

Questions connexes