7

我应该将 Cassandra 用于 100,000 个用户的项目吗?在 MySQL 5 中,我有全文搜索和表分区。我正在使用 CodeIgniter 启动一个像 SO 这样的问答系统。这是从 vBulletin 到新系统的转变。在旧的 vBulletin 系统中,我有 100,000 个用户,总帖子数约为 80,000。在接下来的 3 或 4 年内,我预计会有越来越多的用户和帖子。那么,我应该使用 Cassandra 而不是 MySQL 5 吗?

如果我使用 Cassandra,我需要在 Media Temple 从 Grid-Service 更改为 Dedicated-Virtual 托管。因为 Cassandra 不是作为托管系统的一部分提供的,所以我需要使用 VPS 或 DV 服务器解决方案。如果我使用 MySQL,托管不是问题,但性能和搜索速度如何。

顺便问一下,Stack Overflow 使用的是什么数据库?

4

3 回答 3

8

根据您提供的信息,我建议坚持使用 MySQL。

顺便说一句,Facebook 最初使用的是 MySQL,直到它为超过 1 亿用户存储超过 7 TB 的收件箱数据后才最终转移到Cassandra 。

Wikipedia 还在MySQL 中处理数百 GB的文本数据。

于 2010-04-09T10:21:11.003 回答
6

你说 100,000 个用户 - 但有多少并发用户?

Cassandra 未内置在托管系统中

在单个服务器上使用托管服务表明操作规模非常小 - 而且您显然受到预算的限制。在单个服务器节点上运行 Cassandra 肯定没有任何优势。

在mysql 5中有全文搜索

这不是一个非常可扩展的解决方案 - 您绝对应该考虑使用规范化搜索(我相信如果您要迁移到 Cassandra 无论如何都必须这样做)。

鉴于您甚至可以在考虑完全集群解决方案之前使用复制轻松地将 MySQL 解决方案扩展到多个数据库,而且您显然没有预算来进行自己的托管,因此迁移到 Cassandra 似乎是一个巨大的矫枉过正。

于 2010-04-09T10:39:53.560 回答
1

我不建议您在您的情况下使用 cassandra,原因如下:

  1. Cassandra 需要很好地理解您正在构建的应用程序。对存储在 cassandra 中的数据进行更改和运行复杂查询将变得更加困难。SQL 更灵活,更易于维护。当您需要存储大量数据并且确切地知道存储在 cassandra 中的数据将如何被访问和排序时,Cassandra 非常适合。

  2. 如果建立了正确的索引,Mysql 可以很好地处理数百万行。

  3. 如果您将来使用 mysql 遇到一些瓶颈,您可能会查看您的问题到底是什么并使用 cassandra 扩展它们。我的意思是您必须能够在同一个项目中结合使用两种方法:SQL 和 noSQL。

关于mysql全文索引我可以说它没用。我的意思是它在高负载项目中使用起来太糟糕了。看看 sphinxsearch.com,它是为 sql 数据库制作的全文搜索的一个很好的实现。

但是,如果您期望您的系统快速增长并为数百万用户提供服务,那么您应该从一开始就考虑使用 cassandra。

于 2010-04-10T17:54:22.313 回答