database - 如果我不在查询中使用标签,这会降低基数吗?
问题描述
我对 InfluxDb 有以下问题:它使用相同的标签集和时间戳覆盖值(在我看来,这是一个糟糕的设计选择)。
现在为了以一种经济有效的方式回避这一点,一个想法是制作一个value_id
独特且不断增加的标签(例如)。
我知道这会使基数膨胀到查询时间会非常慢的程度。
我的问题是:如果我不在value_id
我的查询中使用这个随机标签 (),而是在数据库中使用它,这仍然会影响我的查询速度吗?
如果没有,这听起来像是我的问题的“解决方案”。
PS我知道添加纳秒或任意标签是InfluxDB建议的两个“解决方案” ,但听起来都不错,而且在没有大成本的情况下都不能可靠地工作。
解决方案
您能否解释一下您的用例以及为什么需要使用相同的时间和标记集编写不同的值?
回答您的问题:是的,这会损害您的写入和查询时间。
InfluxDB 有一个 Seriesfile 存储一个映射,如果你的系列键是唯一标识符。这种查找和对 Seriesfile 的潜在写入发生在每次写入和读取时。这个文件越大,这些操作就越慢。
实际上并不是来自查询 POV 的基数不好,TSI 支持数十亿个系列;但是,Seriesfile 尚未针对这些工作负载进行优化。
推荐阅读
- sql - 为什么关联数组中的最后一个元素(按表索引)不打印?
- flutter - ProviderNotFoundException(错误:找不到正确的提供者
在此 SchedulingPage Widget 上方使用 layoutBuilder - flutter - 如何在颤动的可扩展列表视图中显示数据
- r - 如何在 R 中的 Shiny 中调整我的侧边栏面板的大小?
- java - Java:转换 ByteBuffer 多维数组
- c++ - 无法找到错误,但编译器给出以下消息:
- c++11 - 为什么指向数组不同元素的两个指针之间的区别是这两个指针之间的元素数?
- arrays - 如何调用索引
- azure - 逻辑应用程序 - 从 Outlook 电子邮件触发器中获取所有 URL 并创建一个数组
- python-3.x - 在 PyGTK 中,如何仅在线程终止时启动线程并继续调用函数