TimescaleDB 2.22.0 发布,基于 PostgreSQL 的时序数据库

timescaledb 2.22.0 发布,基于 postgresql 的时序数据库

TimescaleDB 2.22.0 发布,基于 PostgreSQL 的时序数据库

TimescaleDB 是一款开源的时序数据库,构建于 PostgreSQL 之上,以扩展插件的形式集成,致力于让 SQL 在处理时间序列数据时具备更强的可扩展性。它支持基于时间与空间维度的自动分区,并完整兼容 SQL 查询能力。

最新发布的 TimescaleDB 2.22.0 版本带来了自 2.21.3 以来的一系列性能优化与缺陷修复,主要更新包括:

  • 现在可以通过
    ALTER TABLE
    命令对启用了压缩的超表(hypertable)上的稀疏索引进行显式配置,不再依赖系统内部的自动判断机制。用户可根据实际查询负载,在多个字段上创建索引以提升性能。
  • [技术预览] 连续聚合功能新增
    timescaledb.invalidate_using
    配置选项,支持通过超表上的触发器或利用逻辑解码从 WAL 直接捕获失效数据。若未手动设置,系统将沿用超表的失效策略。
  • 已实现对 UUIDv7 的压缩和向量化处理支持。压缩机制会提取 UUIDv7 中的时间戳部分,采用 delta-delta 编码方式压缩,随机部分则单独存储。同时,向量化的等值/范围过滤器支持批量解压,使相关查询性能提升约 2 倍。该功能默认关闭(通过
    timescaledb.enable_uuid_compression
    控制),以便于版本回退,预计在下一个次版本中默认启用。
  • 超表(Hypertables)现在可基于 UUIDv7 列进行分区,并利用其内嵌的时间信息实现时间分片。此外,新增多个辅助函数以简化 UUIDv7 的使用,例如生成 UUIDv7 值或提取其中的时间戳,如
    uuid_timestamp()
    函数可从 UUIDv7 中解析出 PostgreSQL 时间戳格式。
  • SkipScan 查询优化现已支持多列索引中的非空(not-null)模式,显著提升涉及多个键的去重(distinct)和有序查询效率。

移除 hypercore 表访问方法

此前在 2.21.0 版本中标记为废弃的 hypercore 表访问方法(TAM)本次正式移除。该功能属于实验性质,实际表现未达预期性能目标。因此,升级至 2.22.0 或更高版本前,若仍在使用 TAM,则必须先迁移。

迁移脚本如下:

do $$declare   relid regclass;begin   for relid in       select cl.oid from pg_class cl       join pg_am am on (am.oid = cl.relam)       where am.amname = 'hypercore'   loop       raise notice 'converting % to heap', relid::regclass;       execute format('alter table %s set access method heap', relid);   end loop;end$$;

查看更多更新内容,请访问:https://www.php.cn/link/6abdec2606bd68762a72dc1a4038d1ff

源码下载地址:点击获取

关键词:gitaccessai

网友留言(0 条)

发表评论