一份描述数据库文件缺省页面格式的文档.本章提供一个 Postgres 的表所使用的页面格式的概述.用户定义的访问模式不需要使用这些页面格式.
在下面解释中, 一个字节 假定包含 8 个位.另外,术语 item (条目)指的是存储在 Postgres 表里的数据.
条目 | 描述 |
---|---|
itemPointerData | |
filler | |
itemData... | |
Unallocated Space | |
ItemContinuationData | |
Special Space | |
``ItemData 2'' | |
``ItemData 1'' | |
ItemIdData | |
PageHeaderData |
跟在页面头后面的是条目标识 (ItemIdData).新的条目标识在未分配空间的头四个字节里分配.因为在条目被释放之前,条目标识决不会移动,所以它的索引可以用于表示一个条目在页面中的位置.实际上,Postgres 创建的每个条目标识指针 (ItemPointer) 都由一个桢个数和一个条目标识索引组成.一个条目标识包含一个与条目开头的字节偏移量,其长度以字节记,以及一套影响其转换 (interpretation)的属性位.
条目本身是从未分配空间的尾部开始向后分配的空间中存储的.通常,这些条目不做转换.但是如果条目太长而不能放在一个页面里或者需要条目分解成碎片时,该条目将被分解并且每一部分用下面的方法当作独立的条目处理.第一个到倒数第二个条目片段被放到一个条目连贯结构 (ItemContinuationData) 里.这个结构包含 itemPointerData,该数据指向下一个片段和该片段本身.最后一个片段按正常方法操作.