2

我正在设计一个 Cassandra 数据库来了解它。但是我有一个问题,我想请一些专家帮助我澄清:

我读过每个列族的行都通过节点分布,因此每个节点都有给定列族的行的一部分。这是否意味着将一个列族划分为多个列族不是一个好主意,即使该列族有数百万行?

我对 RDBMS 的经验表明,最好将非常大的表拆分为较小的表以获得更好的性能,但似乎在 Cassandra 中不需要这个,而且,如果我有很多列族,我需要更多的内存. 我对吗?在一个列族中保留许多行以获得更好的性能是否比将列族拆分为多个行更好?

谢谢!

4

1 回答 1

3

在 Cassandra 中不需要对列族进行分片。您可以在一个 CF 中放入尽可能多的数据,只要您有存储空间和机器来存储它。但是,要考虑的一件事是,与使用一些具有真正大驱动器的机器相比,使用许多较小的机器可以获得更好的性能。而且您不想将所有这些数据放在共享存储上。Cassandra 通过并行顺序读取和写入来提高速度。

您确实需要注意的一件事是无限制的行增长——即以无限制的方式将列添加到行中。这是一个非常容易解决的问题,如果需要,可以通过分片密钥来解决。但即便如此,您也可以连续写入数百万列。

于 2013-02-01T19:51:22.120 回答