InlfuxDB TOP功能表现不佳

时间:2018-02-27 17:17:33

标签: influxdb

我正在使用InfluxDB,我正在尝试使用TOP()函数查询其中的值。

以下是请求的例子:

SELECT TOP("duration", 2) AS "top_duration" FROM "range" WHERE "time" > '2017-11-23T15:23:32.243Z' AND "contract" = 'A0000544' AND "type" = 'PRESENCE' AND "room" = '3908' AND "endTime" < 80785557 AND "startTime" > 28630649

在衡量标contract中,typeroom是标记,durationstartTimeendTime是字段。

我有大约37 866 326分的范围,但是合约'A0000544'只有78 962分,房间'3908'只有10 487分

此请求需要几秒钟,我正在尝试缩短处理时间。

我尝试创建另一个测量来减少我的样本并保持最大的“持续时间”。

我只保留4 066 728分,但处理时间相同。

当我在测量中仅保留关于合同的要点时,请求大约需要300毫秒。

我不明白为什么我与空数据库有如此多的执行时间差异,另一方面与过滤后的测量没有区别。

我错过了什么吗?还有其他可能的优化吗?

1 个答案:

答案 0 :(得分:0)

这只是一个假设,但是可能通过进行过滤,而不是仅通过标记进行过滤+ 在单个测量中具有3个字段是性能杀手。字段未编入索引,因此按字段筛选需要全表扫描)。此外,每个数据点的多个字段创建多个索引条目。

我不确定解决方案......很可能,InfluxDB不是为这种复杂的表架构而设计的。