列数影响cassandra?

问题描述:

我在卡桑德拉表中的每行有大约200列。
我有单节点集群截至目前。列数影响cassandra?

当我使用CPP datastax驱动程序运行大约100,000条记录时,我每秒钟获得3500次写入和每秒30,000次读取。但是,当我将所有列保留在一个Blob类型的列中(不包括Cassandra中的主键(分区键))时,我的性能会以每秒40,000次写入和每秒70,000次读取的速度大幅增长。

列数对Cassandra的性能产生影响吗?
另外,1行的数据大小几乎不到1kB。

Theres在反序列化和序列化数据以及跟踪不同列的开销。在3.0之前的版本中,存储大量冗余数据的影响也更加糟糕。它在3.0中好得多,但如果你自己从blob进行反序列化并且在db中调试和统计能力有限,那么你将获得更好的性能。

+0

谢谢克里斯。所以根据你的说法,随着列数的增加,cassandra节点的延迟会增加。另外,我想纠正我在100,000行上进行了非预先测试的测试,而不是10,000。 – Ankit

+0

它取决于列的类型,反序列化需要多长时间。它应该是非常小的,但。在没有看到代码的情况下,如果并行化查询,您可以获得更接近的吞吐量,但是如果您以非异步或顺序执行任何操作,则无论多小都会增加请求延迟,从而降低吞吐量(小数法则)。我强烈建议你先用cassandra-stress测试你的数据模型,以排除客户端的任何低效使用。每秒写入3k的速度非常慢,它应该比读取更快。 –