登录
首页 >  科技周边 >  业界新闻

TimescaleDB2.22.0更新亮点解析

时间:2025-09-04 08:18:44 130浏览 收藏

TimescaleDB 2.22.0 版本正式发布,作为构建于 PostgreSQL 之上的开源时序数据库,本次更新带来诸多性能优化与功能增强。新版本亮点包括:通过 ALTER TABLE 命令显式配置压缩超表上的稀疏索引,提升查询性能;连续聚合功能新增 timescaledb.invalidate_using 配置选项,支持从 WAL 捕获失效数据;实现对 UUIDv7 的压缩和向量化处理支持,查询性能提升约 2 倍(默认关闭,预计下个版本启用);超表支持基于 UUIDv7 列进行分区,并新增辅助函数简化 UUIDv7 的使用;SkipScan 查询优化现已支持多列索引中的非空模式,显著提升查询效率。此外,2.22.0 版本正式移除了此前标记为废弃的 hypercore 表访问方法,建议升级前进行迁移。更多详细更新内容及源码下载,请访问官方 GitHub 页面。

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://github.com/timescale/timescaledb/releases/tag/2.22.0

源码下载地址:点击获取

今天带大家了解了的相关知识,希望对你有所帮助;关于科技周边的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>