首页 > 解决方案 > 如果我不在查询中使用标签,这会降低基数吗?

问题描述

我对 InfluxDb 有以下问题:它使用相同的标签集和时间戳覆盖值(在我看来,这是一个糟糕的设计选择)。

现在为了以一种经济有效的方式回避这一点,一个想法是制作一个value_id独特且不断增加的标签(例如)。

我知道这会使基数膨胀到查询时间会非常慢的程度。

我的问题是:如果我不在value_id我的查询中使用这个随机标签 (),而是在数据库中使用它,这仍然会影响我的查询速度吗?

如果没有,这听起来像是我的问题的“解决方案”。

PS我知道添加纳秒或任意标签是InfluxDB建议的两个“解决方案” ,但听起来都不错,而且在没有大成本的情况下都不能可靠地工作。

标签: databasetime-seriesinfluxdbcardinality

解决方案


您能否解释一下您的用例以及为什么需要使用相同的时间和标记集编写不同的值?

回答您的问题:是的,这会损害您的写入和查询时间。

InfluxDB 有一个 Seriesfile 存储一个映射,如果你的系列键是唯一标识符。这种查找和对 Seriesfile 的潜在写入发生在每次写入和读取时。这个文件越大,这些操作就越慢。

实际上并不是来自查询 POV 的基数不好,TSI 支持数十亿个系列;但是,Seriesfile 尚未针对这些工作负载进行优化。


推荐阅读