Jus*_*ris 39
如果您正在处理一个大型数据集,并且可以使用相当不错的近似值,我强烈建议您使用以下命令:
nodetool --host <hostname> cfstats
Run Code Online (Sandbox Code Playgroud)
这将为每个列族转储一个列表,如下所示:
Column Family: widgets
SSTable count: 11
Space used (live): 4295810363
Space used (total): 4295810363
Number of Keys (estimate): 9709824
Memtable Columns Count: 99008
Memtable Data Size: 150297312
Memtable Switch Count: 434
Read Count: 9716802
Read Latency: 0.036 ms.
Write Count: 9716806
Write Latency: 0.024 ms.
Pending Tasks: 0
Bloom Filter False Postives: 10428
Bloom Filter False Ratio: 1.00000
Bloom Filter Space Used: 18216448
Compacted row minimum size: 771
Compacted row maximum size: 263210
Compacted row mean size: 1634
Run Code Online (Sandbox Code Playgroud)
"密钥数(估计)"行是群集中的一个很好的猜测,性能比显式计数方法快得多.
如果您使用的是保留订单的分区程序,则可以使用get_range_slice或get_key_range执行此操作.
如果不是,则需要将用户ID存储在特殊行中.
我在这里找到了一篇很好的文章.. http://www.planetcassandra.org/blog/post/counting-keys-in-cassandra
从cf limit 1000000中选择count(*)
如果我们预先知道已知的近似上限,则可以使用上述语句.我发现这对我的情况很有用.
Phi*_*ump -3
在 PHP 中将数据转换为哈希值后,我得到了这样的计数。