我应该将Cassandra用于100,000个用户项目吗?在MySQL 5中,我有全文搜索和表格分区。我正在使用CodeIgniter开始像SO这样的Q& A系统。这是从vBulletin到新系统的转变。在旧的vBulletin系统中,我有100,000个用户,总帖子数约为80,000。在接下来的3到4年里,我预计会有越来越多的用户和帖子。那么,我应该使用Cassandra而不是MySQL 5吗?
如果我使用Cassandra,我需要在Media Temple上从Grid-Service更改为Dedicated-Virtual主机。由于Cassandra不是托管系统的一部分,我需要使用VPS或DV服务器解决方案。如果我使用MySQL,托管不是问题,但那么性能,搜索速度如何。
顺便说一句,Stack Overflow使用什么数据库?
答案 0 :(得分:8)
根据您提供的信息,我建议坚持使用MySQL。
正如侧面说明的那样,Facebook最初使用MySQL,并且在存储超过7 TB的收件箱数据后,最终仅移至Cassandra ,超过1亿用户
维基百科还有handles hundreds of Gigabytes MySQL中的文本数据。
答案 1 :(得分:6)
你说100,000个用户 - 但有多少并发用户?
Cassandra不是内置于托管系统
在单个服务器上使用托管服务会显示非常小规模操作 - 您的预算明显受限制。在单个服务器节点上运行Cassandra肯定没有优势。
在mysql 5中有全文搜索
这不是一个非常可扩展的解决方案 - 您应该考虑使用规范化搜索(我相信如果您正在迁移到Cassandra,您必须这样做)。
鉴于您可以在考虑完全集群解决方案之前使用复制轻松地将MySQL解决方案扩展到多个数据库,并且您显然没有预算来执行自己的托管,迁移到Cassandra似乎是一个巨大的过度杀伤力。
答案 2 :(得分:1)
由于以下原因,我不建议您在案件中使用cassandra:
Cassandra需要很好地理解您正在构建的应用程序。对存储在cassandra中的数据进行更改和运行复杂查询将更加困难。 SQL更灵活,更易于维护。当您需要存储大量数据并且确切知道如何访问和排序存储在cassandra中的数据时,Cassandra是很好的。
如果构建了正确的索引,Mysql可以正常运行数百万行。
如果您将来使用mysql遇到一些瓶颈,您可以查看您的问题究竟是什么,并使用cassandra进行扩展。我的意思是你必须能够将两种方法结合起来:SQL和noSQL在同一个项目中。
关于mysql全文索引我可以说它没用。我的意思是它在高负荷项目中使用太糟糕了。查看sphinxsearch.com,这是为sql数据库进行全文搜索的一个很好的实现。
但如果您希望系统快速增长并且将为数百万用户提供服务,那么从一开始就应该考虑使用cassandra。