pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
目录
PostgreSQL提供一种大对象机制,允许以流式方式访问存储在专用大对象结构中的用户数据。在处理大到无法方便地整体操作的数据值时,这种流式访问非常有用。
本章介绍PostgreSQL大对象数据的实现,以及相应的编程接口和查询语言接口。本章示例使用libpq C 库,但大多数PostgreSQL原生编程接口都支持等效的功能。其他接口也可能在内部使用大对象接口来为大值提供通用支持,这里不作说明。
PostgreSQL的间接前身 POSTGRES 4.2支持三种标准的大对象实现: 作为POSTGRES服务器外部的文件、作为由 POSTGRES服务器管理的外部文件,以及作为 存储在POSTGRES数据库内部的数据。这在 用户中造成了相当大的混乱。因此,PostgreSQL 中只保留了把大对象作为数据库内部存储数据的支持。虽然这样访问 速度较慢,但它提供了更严格的数据完整性。由于历史原因,这种存储 方案被称为Inversion 大对象。(你会看到 Inversion 一词偶尔也被用来表示大对象的同义词。)从 PostgreSQL 7.1开始,所有大对象都存放 在一个名为pg_largeobject的系统表中。
PostgreSQL 7.1 引入了一种(绰号为 “TOAST”的)机制,允许数据值远大于 单个页面。这使大对象机制在某种程度上变得有些过时。大对象机制的 一个仍然保留的优势是,它允许的值大小最多可达 2 GB,而经 TOAST处理的字段最大只能到 1 GB。此外,大对象 可以比普通数据字段更方便地逐段操作,因此实际的限制差别相当大。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。