我试图掌握Cassandra和关系数据库之间的一些性能差异。
根据我的阅读,无论数据量如何,Cassandra的写入性能都保持不变。通过写性能,我假设这意味着要添加新行以及在键匹配时替换现有行(如关系世界中的更新)。这个假设是否正确?
此外,根据我对关系数据库的理解,当表/分区变大时,更新会变慢。这是因为必须执行全表扫描以定位行,或者需要执行索引查找,并且随着表或分区的增长,这两者都将花费更长的时间。因此,基于表/分区的数据量,更新会持续更长时间吗?
当新数据插入关系数据库时,我知道任何索引都需要拥有新数据,但没有涉及正确的查找?因此,随着数据量的增加,插入也会变得越来越慢,或者在关系数据库中保持不变?
感谢您提供任何提示
答案 0 :(得分:4)
如果表有索引,它们会变慢。不仅必须写入数据,还必须更新索引。插入没有索引和没有约束的表是快速的,因为不需要进行检查。记录只能写在表空间的末尾。
答案 1 :(得分:1)
在关系数据库方面,我一直在我们的RDBMS上进行负载测试,在那里我可以看到随着数据被添加到数据库中,性能呈指数下降。
我仍在研究Cassandra设置,以便能够实现类似的测试。与此同时,这篇Cassandra演示文稿给出了一些与MySQL相比的Cassandra信息: http://www.slideshare.net/Eweaver/cassandra-presentation-at-nosql