当前位置: 首页 > news >正文

实用指南:TimescaleDB 超表 物理表解释

一、PostgreSQL 基础存储逻辑(TimescaleDB 继承此机制)

PostgreSQL 的扩展,因此数据文件的就是TimescaleDB 底层存储逻辑完全继承 PostgreSQL。在 PostgreSQL 中:

  • 每个数据库对应 $PGDATA/base/<数据库 OID>目录(截图中路径为 /usr/local/pgsql/data/base/1723017230是数据库的 OID)。

  • 每个表(包括超表、普通表、分块后的 Chunk)对应一个关系档案节点(relfilenode)​,存储在数据库目录下的子目录中,子目录名即 relfilenode(如截图中的 1892518917等)。

二、TimescaleDB 超表的“物理分块”特性

TimescaleDB 超表的核心是水平分块(Chunking)​​:超表会被按时间范围(或其他维度)拆分为多个Chunk,每个 Chunk 是一个独立的 PostgreSQL 表(在底层存储上与普通表无差异)。

因此,超表的“物理存储”本质是多个 Chunk 对应的 PostgreSQL 表的集合,每个 Chunk 都有自己的 relfilenode 和数据文件。

三、数据文件类型及作用(以截图为例)

截图中展示了多个文件,核心类型包括主数据文件_fsm文件、_vm文件,以下逐一解释:

1. 主数据文件(如 1892518917等)
  • 作用​:存储表的行数据,是表的核心存储载体。

  • 结构​:

    • PostgreSQL 页面大小默认 8KB,数据文件按“页面”组织,每个页面存储若干行素材。

    • 单个数据文件最大为 1GB(可通过参数调整),超过 1GB 时会自动生成分片文件​(如 18925.118925.2…),每个分片仍为 1GB 内。

  • 示例​:截图中 18925大小为 104.31MB,是某张表(或 Chunk)的主数据文件,存储该对象的实际行数据。

2. _fsm文件(如 18925_fsm18917_fsm
  • 全称​:Free Space Map(空闲空间映射)。

  • 作用​:跟踪数据文件中哪些页面有空闲空间,支援 PostgreSQL 高效分配存储(如 INSERT 时迅速找到有足够空间的页面,避免频繁页面分裂)。

  • 特性​:

    • 每个主数据文件对应一个 _fsm文件。

    • 文件大小固定为 8KB(与 PostgreSQL 页面大小一致,按“页面”管理空闲空间信息)。

3. _vm文件(如 18925_vm18917_vm
  • 全称​:Visibility Map(可见性映射)。

  • 作用​:记录数据文件中哪些页面的所有元组对所有事务可见​(即已提交且未被后续事务修改)。

  • 特性​:

    • 每个主数据文件对应一个 _vm文件。

    • 加速 VACUUM(跳过无需清理死元组的页面)和查询(跳过需检查可见性的页面),提升性能。

    • 文件大小固定为 8KB(同页面大小)。

四、TimescaleDB 超表的文件“映射关系”

超表 → 多个 Chunk(每个 Chunk 是 PostgreSQL 表)→ 每个 Chunk 对应一套数据文件(主数据文件 + _fsm+ _vm+ 可能的分片文件)。

例如:

  • 超表 metrics按时间分块为 chunk_2023Q1chunk_2023Q2

  • chunk_2023Q1对应 relfilenode 18925,其文件为 18925(主数据)、18925_fsm18925_vm

  • chunk_2023Q2对应 relfilenode 18917,其文件为 18917(主数据)、18917_fsm18917_vm

五、额外补充:元数据与索引文件

除了上述数据文件,TimescaleDB 超表还涉及:

  • 系统表元数据​:超表的定义(如分块策略、维度列)存储在 _timescaledb_catalog模式的系统表中(如 hypertableschunks)。

  • 索引文件​:超表的索引(如时间索引、哈希索引)也以独立 PostgreSQL 表存在,对应自己的 relfilenode 和数据文件(结构与普通表一致)。

总结

TimescaleDB 超表的数据文件本质是多个 PostgreSQL 表(Chunk)的文件集合,每个 Chunk 包含:

  • 主数据文件(存储行数据,超 1GB 分片);

  • _fsm文件(空闲空间管理);

  • _vm文件(可见性优化)。

此种设计既复用了 PostgreSQL 成熟的存储引擎,又通过“分块”达成了时序数据的高效水平扩展。

http://www.jsqmd.com/news/22512/

相关文章:

  • 使用Prodfiler优化eBPF编译器性能:从内存分配到向量化的全面调优
  • 详细介绍:JMeter接口测试
  • 深入解析:GESP25年9月编程题解析
  • Anthropic Agent Skills 技术解析与实践
  • d40: vue杂项问题 - 详解
  • day04-Coze工作流案例(中草药识别-菜谱生成-智能换脸)
  • 记力扣2271.毯子覆盖的最多白色砖块数 练习理解 - 详解
  • 实用指南:【Android之路】 Kotlin 的 data class、enum class、sealed interface
  • 精通-Pandas-探索性分析-全-
  • 【图像处理-基础知识】SFIT特征解析 - 教程
  • 深入解析:【FPGA+DSP系列】——(2)DSP最小核心板进行ADC采样实验(采集电位器输出电压)
  • ABC429F Shortest Path Query 题解
  • 苏维埃日报08.高三生福音?大屏课表软件ClassIsland助你度过高三
  • 创建平面设计网站-全-
  • 2025年优质的造纸橡胶辊,天然橡胶辊品牌厂家排行榜
  • 软件神器 --- x64db插件 之 SharpOD
  • 2025年耐用的移动搅拌车,搅拌车优质厂家推荐榜单
  • 2025年靠谱的方形冷却塔,横流式冷却塔用户口碑最好的厂家榜
  • 2025年口碑好的硅胶制品,密封硅胶制品厂家最新实力排行
  • 2025年耐用的北美款三防灯,单双管三防灯厂家推荐及选择指南
  • 2025年优质的高速电吹风开关,电吹风开关厂家最新用户好评榜
  • 2025年比较好的冷拔无缝钢管,大口径无缝钢管热门厂家推荐榜单
  • 2025年靠谱的广场音乐喷泉,水秀音乐喷泉行业内口碑厂家排行榜
  • 2025年知名的薄型液压缸,多级液压缸实力厂家TOP推荐榜
  • 2025年有实力贴体机,手压式真空贴体机用户好评厂家排行
  • 2025年优质的定量包装机,自动吨袋包装机厂家最新用户好评榜
  • 2025年靠谱的汽车改装,别克gl8汽车改装厂家实力及用户口碑排行榜
  • 2025年知名的厚薄门通用缓冲铰链,任意扣缓冲铰链厂家实力及用户口碑排行榜
  • 完整教程:构建融合扩散模块的知识引导式联邦图注意力学习网络用于阿尔茨海默病诊断|文献速递-文献分享
  • 2025年优质的移动盘式过滤机,真空过滤机最新TOP品牌厂家排行