PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

52.30. pg_largeobject #

目录 pg_largeobject 保存构成 “大对象”的数据。大对象由创建时分配的 OID 标识。 每个大对象都会被切分成若干段或“页”, 每一段都小到可以方便地作为 pg_largeobject 中的行存储。每页的数据量定义为 LOBLKSIZE(目前为 BLCKSZ/4,通常即 2 kB)。

在 PostgreSQL 9.0 之前, 大对象没有关联的权限结构。因此 pg_largeobject 是公开可读的, 可以用它获取系统中所有大对象的 OID(和内容)。 现在已不是这样;请使用 pg_largeobject_metadata 来获取大对象 OID 的列表。

Table 52.30. \1 字段列说明

Column Type

Description

loid oid (references pg_largeobject_metadata.oid)

包含此页面的大对象的标识符

pageno int4

该页在其大对象内的页号(从零开始计数)

data bytea

大对象中实际存储的数据。 它绝不超过 LOBLKSIZE 字节,并且可能更少。


pg_largeobject 的每一行保存大对象中 一页的数据,起始字节偏移为对象内的 (pageno * LOBLKSIZE)。 该实现允许稀疏存储:页可能缺失, 即使不是对象的最后一页,也可能短于 LOBLKSIZE 字节。 大对象中缺失的区域读作零。