InfluxDB TOP功能表现不佳

问题描述 投票:0回答:1

我正在使用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

在测量contracttyperoom是标签,durationstartTimeendTime是字段。

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

这个请求需要几秒钟,我正在尝试减少处理时间。

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

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

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

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

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

influxdb
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.