2010-04-09 8 views
7

Dois-je utiliser Cassandra pour un projet de 100 000 utilisateurs? En MySQL 5, j'ai la recherche en texte intégral et le partitionnement de table. Je commence un Q & Un système comme SO avec CodeIgniter. C'est un passage de vBulletin à un nouveau système. Dans l'ancien système vBulletin, j'avais 100 000 utilisateurs, avec un nombre total de messages d'environ 80 000. Dans les 3 ou 4 prochaines années, je pense qu'il y aura de plus en plus d'utilisateurs et de messages à la fois. Alors, devrais-je utiliser Cassandra au lieu de MySQL 5?Cassandra ou mysql 5? Ce qui sera bon pour l'avenir?

Si j'utilise Cassandra, je dois passer de Grid-Service à Dedicated-Virtual hosting à Media Temple. Parce que Cassandra n'est pas fourni dans le cadre d'un système d'hébergement, j'ai besoin d'utiliser une solution de serveur VPS ou DV. Si j'utilise MySQL, l'hébergement n'est pas un problème, mais qu'en est-il des performances, de la vitesse de recherche. Par ailleurs, quelle base de données Stack Overflow utilise-t-il?

+1

Eh bien, la première chose à être sûr serait si vous voulez une base de données SQL ou une base de données NoSQL, par exemple. Cassandra. C'est une architecture fondamentalement différente. – Gordon

+1

Stackoverflow utilise SQL Server 2008. Ce qui suit peut être une lecture intéressante: http://highscalability.com/blog/2009/8/5/stack-overflow-architecture.html – ChristopheD

+0

oui. NoSQL ou base de données SQL. Dans le futur, RDB pourrait mourir? – saturngod

Répondre

6

Vous dites 100 000 utilisateurs - mais combien d'utilisateurs simultanés?

Cassandra n'est pas construit dans le système d'hébergement

L'utilisation d'un service hébergé sur un seul serveur propose une très opération à petite échelle - et votre limite évidemment par votre budget. Il n'y a certainement aucun avantage à faire fonctionner Cassandra sur un seul nœud de serveur.

dans MySQL 5 ont recherche en texte intégral

Ce qui est pas une solution très évolutive - vous devriez certainement penser à l'aide d'une recherche normalisée (que je crois que vous auriez à faire si vous migrez à Cassandra de toute façon). Etant donné que vous pouvez facilement adapter la solution MySQL à plusieurs bases de données en utilisant la réplication avant même de penser à une solution complète, et que vous n'avez évidemment pas le budget pour faire votre propre hébergement, migrer vers Cassandra .

+0

merci. Je vais changer pour dv dans le futur. Maintenant, je cours sur mediasemple gridserver. Qu'est-ce qu'une recherche normalisée? – saturngod

8

D'après les informations que vous avez fournies, je suggère de rester sur MySQL.

Tout comme une note côté, Facebook utilisait MySQL au début, et finalement déplacé à Cassandraseulement après stockait plus de 7 téraoctets de données de la boîte de réception, pour plus de 100 millions d'utilisateurs.

Wikipédia également handles hundreds of Gigabytes de données de texte dans MySQL.

+0

Merci. génial! informations pour moi. – saturngod

1

Je ne vous recommandons d'utiliser cassandra dans votre cas pour les raisons suivantes:

  1. Cassandra besoin d'une bonne compréhension de l'application que vous construisez. Il sera beaucoup plus difficile de faire des changements et d'exécuter des requêtes complexes sur les données stockées dans Cassandra. SQL est plus flexible et plus facile à maintenir. Cassandra est bon quand vous avez besoin de stocker d'énormes quantités de données et quand vous savez exactement comment les données stockées dans Cassandra seront accessibles et triées.

  2. Mysql fonctionne correctement pour des millions de lignes si les index sont correctement construits. Si vous rencontrez des goulots d'étranglement dans le futur avec mysql, vous pouvez regarder quels sont exactement vos problèmes et les mettre à l'échelle en utilisant Cassandra. Je veux dire que vous devez être capable de combiner les deux approches: SQL et noSQL dans le même projet.

En ce qui concerne l'index de texte intégral mysql, je peux dire que c'est inutile. Je veux dire que ça marche trop mal pour être utilisé dans des projets très chargés. Regardez sphinxsearch.com, qui est une excellente implémentation de la recherche en texte intégral pour les bases de données SQL. Mais si vous pensez que votre système se développe rapidement et qu'il va servir des millions d'utilisateurs, vous devriez considérer le cassandra depuis le début.