2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本: devel
不支持的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2

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

列 类型

描述

loid oid (引用 pg_largeobject_metadata.oid)

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

pageno int4

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

data bytea

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


pg_largeobject 的每一行都包含一个大对象页的数据,从对象内的字节偏移量(pageno * LOBLKSIZE)开始。该实现允许稀疏存储:页可能缺失,并且即使不是对象的最后一页,其长度也可能小于 LOBLKSIZE 字节。大对象内的缺失区域读取为零。

提交更正

如果您在文档中看到任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表格 报告文档问题。