使用hector计算cassandra行中总列数的更快方法

时间:2012-01-03 15:12:59

标签: java performance cassandra counting hector

我想使用Hector客户端计算Cassandra行的总列数。目前我用CountQuery这样做,但对我来说似乎很慢。对于一排,只有6万列,它需要将近2秒。我的代码目前看起来像这样:

QueryResult<Integer> qr = HFactory.createCountQuery(ksp, se, se).
    setColumnFamily("ColumnFamily1").
    setKey("RowKey").
    setRange(null, null, 1000000000).execute();

PS:我必须将范围设置为如此高的数字,否则它只计算我最大值。我在该范围内提供的数字。

我有什么想法可以改善这个?

1 个答案:

答案 0 :(得分:8)

计算Cassandra中的列本质上很慢。 Cassandra必须迭代整行才能返回计数。

您可能希望对计数进行非规范化。您可以使用每次插入时更新的计数器列。