postgresql 查询序列_PostgreSQL的Tuple内幕探索

作者简介刘阳明,数据库研发工程师,对数据库内核有浓厚兴趣;看好PostgreSQL的前景,希望有PostgreSQL被更多的人深入了解。一、总体结构PostgreSQL的堆表由多个页组成。业内结构如上图所示(代码readme中),由5部分构成,如下。模块描述页头24字节长,包含页内的总体信息与空闲空间的位置。行指针每个行指针占4个字节,由两项信息构成(offset,length) ,指向...
摘要由CSDN通过智能技术生成

作者简介

刘阳明,数据库研发工程师,对数据库内核有浓厚兴趣;看好PostgreSQL的前景,希望有PostgreSQL被更多的人深入了解。

一、总体结构

38b97dbe0912fd25a5876be45b61e84e.png

PostgreSQL的堆表由多个页组成。业内结构如上图所示(代码readme中),由5部分构成,如下。

模块

描述

页头

24字节长,包含页内的总体信息与空闲空间的位置。

行指针

每个行指针占4个字节,由两项信息构成(offset,length) ,指向实际的Tuple数据。

空闲空间

页内未分配的空间,如果FreeSpace剩下的空间放不下一个元组,那么该页就是满了。新的行指针从空闲空间的头部开始分配,相应的Tuple数据从空闲空间的尾部开始分配。

Tuple

实际的Tuple数据

特殊空间

如果是索引页,那么根据索引类型的不同存储的数据也不同。

Page Header

e90b841a77dd38bf5d6e1855fe207e70.png

• LSN:在BufferManager中,为了保证WAL的原则(thou shalt write xlog before data),对每个块标记了一个日志序列号(Log Sequence Number)。

• prune xid:PostgreSQL中有一个对页内空间进行整理的过程,该列记录了上一个对页进行整理的xid。

Item ID(行指针

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值