我在处理海量的数据库(数百GB),目前使用MySQL基本上能够满足我的需求。但我犹豫是否要尝试Cassandra。
想要了解关于这种NoSQL数据库管理系统的所有内容,它们是否比MySQL更快?
有几个要点:
行中列数的变化 在MySQL中,它们必须事先定义好。这些列在表的结构中设置。 而在NoSQL中,它们可以是多变的。 固定结构下真正有性能差异吗?为什么?
去除关系对性能有益。 好的,但我不一定要创建关系表在MySQL中。 我使用聚合表,即只包含从其他表派生的数据的表, 以避免过于昂贵的连接。 如果我在MySQL中采用这种模型,那么性能水平会有何不同? 例如,作者在http://www.rackspacecloud.com/blog/2010/05/12/cassandra-by-example/中多次插入跟随者在消息USERLINE推送中。 我也可以在MySQL中做到这一点。
可扩展性,可扩展性,可扩展性......我喜欢这个,Cassandra能否让我在不同的服务器上存储数据(无需SAN)? 我这里不是在谈论复制,而是一个单独的NoSQL服务器跨越多个物理服务器。
即时计算。MySQL提供了像SUM、AVG等非常有用的函数,可以避免我在其他表中重新聚合我的数据。我没有看到Cassandra的相应功能?
索引怎么样。在MySQL中,我对多个字段建立索引。例如,我的表有多个列的主键,并且我根据功能选择它们。Cassandra如何编写呢?为每一行连接成一个单一的标识符?我想我还没有完全掌握索引的管理。它们是在集成或上游重新计算的吗?
异步请求。对我来说似乎是一个错误的参数,Mysql可以使用INSERT / UPDATE LOW_PRIORITY完成。
我想我误解了这个问题。感谢你给我启示。