Performance 卡桑德拉性能:是否拆分CF?

Performance 卡桑德拉性能:是否拆分CF?,performance,cassandra,Performance,Cassandra,我正在设计一个卡桑德拉数据库来了解它。但我有一个问题,我想请一些专家帮我澄清: 我已经了解到,每个列族的行通过节点分布,因此每个节点都有一部分给定列族的行。这是否意味着即使一个柱族有数百万行,将该柱族划分为多个柱族也不是一个好主意 我在RDBMS方面的经验表明,最好将非常大的表拆分为较小的表,以获得更好的性能,但在Cassandra中,似乎不需要这样做,而且,如果我有许多列族,我将需要更多内存。我说得对吗?在一个列族中保留多行以获得比将列族拆分为多行更好的性能吗 谢谢 在Cassandra中不需

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

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

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


谢谢

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


您需要注意的一件事是无限制的行增长,即以无限制的方式向行中添加列。这是一个非常容易解决的问题,如果需要的话,可以通过切分键来解决。但即使这样,你也可以一行写上百万列。

非常感谢你。我不知道有很多小机器比有几个大机器好,而且有并行顺序访问更好。我知道切分键,但很高兴看到您也推荐;)也谢谢你。为了避开热点,我几乎所有的行都被分成了几千行,小于1MB。我希望这个模式在生产中能很好地工作。。。