本文为您展示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 | 实际的数据。 |