17

在使用 Cassandra 的 C/C++ 驱动程序时,我有时会在控制台中看到这些消息:

1460937092.140 [WARN] (src/response.cpp:51:char*
      cass::Response::decode_warnings(char*, size_t)):
      Server-side warning: Aggregation query used without partition key

想知道是否有人知道这意味着什么。我应该在我的代码中寻找什么可能会产生这个错误,或者它只是服务器端我无法控制的东西?

4

1 回答 1

25

该警告告诉您,您正在使用没有分区键的用户定义聚合进行选择。这可能是内置的,例如 avg、count、min、max,也可能是您自己的。

一个例子:

select avg(temperature) from weather_data;

VS

select avg(temperature) from weather_data where id = 1;

第一个示例将扫描集群中的所有数据行,可能会严重影响性能。如果有足够的行,查询可能会超时。

第二个将仅扫描单个数据分区,将查询保留在一台服务器上,并且是推荐的用法。

于 2016-04-18T04:30:17.523 回答