# 52.30.pg_largeobject

目录pg_largeobject保存构成“大对象”的数据。大对象由创建时分配的 OID 标识。每个大对象都被分成足够小的段或“页面”,以便方便地存储为行pg_largeobject.每页的数据量定义为LOBLKSIZE(目前是BLCKSZ/4,或通常为 2 kB)。

在 PostgreSQL 9.0 之前,没有与大对象关联的权限结构。因此,pg_largeobject是公开可读的,可用于获取系统中所有大型对象的 OID(和内容)。这已不再是这种情况;采用pg_largeobject_metadata获取大对象 OID 的列表。

表 52.30.pg_largeobject

列类型

描述
样体 样的(参考pg_largeobject_metadata.样的)

包含此页面的大对象的标识符
页面诺 整数4

此页面在其大对象中的页码(从零开始计数)
数据 拜茶

存储在大对象中的实际数据。这永远不会超过LOBLKSIZE字节,可能会更少。

每一行pg_largeobject保存大对象的一页的数据,从字节偏移量(页号 * LOBLKSIZE) 对象内。该实现允许稀疏存储:页面可能丢失,并且可能比LOBLKSIZE字节,即使它们不是对象的最后一页。大对象中的缺失区域读取为零。