【问题标题】:Cassandra warning: Aggregation query used without partition keyCassandra 警告:使用没有分区键的聚合查询
【发布时间】:2021-07-12 14:54:22
【问题描述】:

当我对 C* 运行计数查询时,我得到带有警告的结果:

cqlsh:my_keyspace> SELECT count(*) from user;

计数


 1

(1 行)

警告:使用没有分区键的聚合查询

警告是因为 C* 必须对所有节点进行扫描。

但是当我做这个查询时:

cqlsh:my_keyspace> SELECT * FROM user;

姓氏 |名字 |标题

-----------+------------+-------
能源部 |约翰 |先生

(1 行)

此查询没有向我显示警告。这不是也应该扫描所有节点吗?

【问题讨论】:

标签: cassandra


【解决方案1】:

是的,两个查询都进行全表扫描,但前者使用聚合函数,而后者不使用。

COUNT() 是一个聚合函数——它通过聚合查询中的所有行来返回最终计数。这就是SELECT COUNT(*) 生成警告而SELECT * 不生成警告的原因。干杯!

【讨论】:

    猜你喜欢
    • 2016-08-09
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    • 2018-05-22
    相关资源
    最近更新 更多