在使用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
想知道是否有人知道这意味着什么。我应该在我的代码中寻找可能产生此错误的内容,或者它只是服务器端的一些我无法控制的东西?
答案 0 :(得分:20)
该警告告诉您使用没有分区键的用户定义聚合进行选择。这可能是像avg,count,min,max一样内置的,也可能是你自己的一个。
一个例子:
select avg(temperature) from weather_data;
Vs的
select avg(temperature) from weather_data where id = 1;
第一个示例将扫描群集中的所有数据行,并且可能会严重影响性能。如果有足够的行,查询可能会超时。
第二个只扫描单个数据分区,它将查询保留在一个服务器上,是推荐用法。