↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 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 / 7.1 / 7.0 / 6.5 / 6.4
历史版本。 PostgreSQL 8.1 已结束支持。 请参阅 当前版本手册.

第 29 章 大对象

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

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

29.1. 历史 #

PostgreSQL 的间接前身 POSTGRES 4.2 支持三种标准的大对象实现方式:作为 POSTGRES 服务器外部的文件、作为由 POSTGRES 服务器管理的外部文件,以及作为存储在 POSTGRES 数据库内部的数据。这在用户中引起了相当大的混乱。因此,PostgreSQL 只保留了把大对象作为数据库内部存储数据的方式。尽管这样访问速度较慢,但它提供了更严格的数据完整性。由于历史原因,这种存储方案被称为 Inversion 大对象(Inversion large objects)。(你会偶尔看到 Inversion 一词被用来表示与大对象相同的含义。)从 PostgreSQL 7.1 开始,所有大对象都放在一个名为 pg_largeobject 的系统表中。

PostgreSQL 7.1 引入了一种(绰号为 “TOAST”的)机制,允许数据值远大于单个页面。这使得大对象机制在一定程度上已经过时。大对象机制仍然保留的一个优势是,它允许的值大小可达 2 GB,而经过 TOAST 处理的字段最大只能到 1 GB。此外,大对象可以比普通数据字段更容易地逐段进行操作,因此实际的限制差别很大。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.