【问题标题】:Indexing in TimescaleDBTimescaleDB 中的索引
【发布时间】:2019-07-23 04:15:27
【问题描述】:

今天我在Hackernews 上阅读了关于BRIN indexing with PostgreSQL 的信息。

我们正在使用 TimescaleDB 处理大型和简单的传感器数据系列。

TimescaleDB 中的 BRIN 索引是否会提供额外的价值,或者 TimescaleDB 的功能是否会使 BRIN 索引过时?

【问题讨论】:

  • 我怀疑 BRIN 索引是否有助于提高存储在 TimescaleDB 中的简单传感器数据的性能。尝试使用替代 TSDB,它可以提供更高的性能或更低的 CPU 和磁盘使用率。例如,InfluxDB、VictoriaMetrics、M3DB。另请参阅this article

标签: postgresql indexing timescaledb


【解决方案1】:

TimescaleDB 只是一个薄层,可以加快插入分区的速度,据我所知,它并不能提升您的查询。

BRIN 索引仅在根据列的行的逻辑顺序与行的物理顺序完全相同(或完全相反)的情况下才有用。

在实践中,这意味着必须以与相关列相同的顺序插入行(例如,较早的时间戳在后面的时间戳之前插入),并且永远不会有 UPDATEDELETE

如果是这种情况,您可以在该列上使用 BRIN 索引,这几乎不会占用空间。

【讨论】:

  • 谢谢。这似乎正是我们的情况。我们总是使用 now() 时间戳插入传感器数据。我一定会试试的!
  • 这里有时间刻度的人。需要明确的是,Timescale 围绕时间序列数据的性质和规模的查询计划/优化提供了许多更改,以及用于新分析和自动化时间序列数据管理的其他功能。因此,不仅仅是“插入物上的薄层”,而且也许我很迂腐。关于 Q:Timescale 支持 BRIN 索引;在超表上创建时,将传播到每个块本地的 BRIN 索引。 Laurenz 提到的一件事要小心:你仍然可以在 now() 周围重新排序,因为你有任意数量的并发。
  • 感谢您的澄清;您可能已经猜到了,我对 TimescaleDB 没有深入的了解。
猜你喜欢
  • 2021-06-14
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 2020-05-15
  • 2018-11-10
  • 2021-09-05
  • 2021-05-20
  • 2022-01-18
相关资源
最近更新 更多