本文为您展示PolarDB PostgreSQL版(兼容Oracle)的堆表结构图。

堆表结构
结构说明
table files表文件,由一个或多个数据文件组成,文件数量与文件大小有关,超过1 GB就会生成一个新的数据文件。
file数据文件,由多个数据块组成。
page数据块,由多个数据行组成。
page header数据块头,详细信息请参见数据块头信息
tuple数据行。
tuple header数据行头,详细信息请参见数据行头信息
表 1. 数据块头信息
结构说明
pd_lsn最后修改这个块的WAL的位点。
pd_checksum页面校验码。
pd_flags标志位。
pd_lower到空闲空间开头的偏移量。
pd_upper到空闲空间结尾的偏移量。
pd_special到特殊空间开头的偏移量。
pd_pagesize_version页面大小和布局版本号信息。
pd_prune_xid页面上最老未删除的xmax,如果没有则为0。
表 2. 数据行头信息
结构说明
t_xmin插入事务ID(XID)。
t_xmax删除事务ID(XID)。
t_cid插入或删除CID。
t_ctid当前版本的页面偏移量或者指向更新的版本。
t_infomask标志位。
t_infomask2额外标志位。
t_hoff到用户数据的偏移量。
tuple data实际的数据。