选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.4 已于 2020 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

第 32 章 大对象

PostgreSQL提供一种大对象机制,允许以流式方式访问存储在专用大对象结构中的用户数据。在处理大到无法方便地整体操作的数据值时,这种流式访问非常有用。

本章介绍PostgreSQL大对象数据的实现,以及相应的编程接口和查询语言接口。本章示例使用libpq C 库,但大多数PostgreSQL原生编程接口都支持等效的功能。其他接口也可能在内部使用大对象接口来为大值提供通用支持,这里不作说明。

32.1. 简介 #

所有大对象都存储在一个名为pg_largeobject的系统表中。每个大对象在系统表pg_largeobject_metadata中也有一个条目。大对象可以使用一种类似标准文件操作的读写 API 来创建、修改和删除。

PostgreSQL还支持一种名为TOAST的存储系统,它会自动将大于单个数据库页的值存储到每个表各自的二级存储区域中。这使得大对象机制在一定程度上已经过时。大对象机制仍然保留的一个优势是,它允许的值大小可达 4 TB,而经过TOAST处理的字段最大只能到 1 GB。此外,可以高效地读取和更新大对象的一部分,而对于经过TOAST处理的字段,大多数操作都会把整个值作为一个整体读出或写入。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。