标准柱族与超柱族

tom*_*tom 4 cassandra

我读到某处指示对于标准列族中有数千列的行,更好的设计将它们拆分成超级列,通过这样做,读取将非常有效,因为cassandra只需要加载并返回列下的列给定的超级列名称,而不是加载,并可能返回列的thoudsands.有人可以确认吗?

Tyl*_*bbs 6

那不是好建议.此时,超级列是最佳解决方案的用例非常少.对于大多数历史上使用的超级列,新的CompositeTypes是更好的解决方案.

话虽如此,听起来你在这里也不需要CompositeTypes.确实如果你正在阅读一个非常大的行,你不应该立刻撤回整行.相反,您应该在连续切片中获取行的部分.

基本上,你将会演出一系列的get_slice()s.对于第一个,将列计数设置为,例如1000,列开始为"".然后,从该组结果中取出最后一列名称(称之为X),然后进行另get_slice()一次列数为1000的调用,但这一次,将列开始设置为X.丢弃您获得的第一列(它将是X),然后重复整个get_slice()过程,直到查询返回少于1000列,这表示您已经到达行的末尾.

您可能希望一次获取大于或小于1000,具体取决于列大小.