Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

33.2.实现特性 #

大对象实现将大对象拆分为“块”,并将块存储在数据库中的行中。B 树索引可确保在进行随机访问读取和写入时快速搜索正确的块号。

针对大型对象的存储区块不必是连续的。例如,如果应用程序打开一个新的较大型对象,寻址至偏移量 1000000,并写入少量字节的信息,这并不会导致分配 1000000 字节的存储空间;只有实际上写入的数据字节范围内的块会得到分配。然而,读取操作将对任何未分配的位置(在最后一个现有块之前)读出零。这对应于 稀疏分配 文件在Unix文件系统中的常见行为。

从 PostgreSQL 9.0 开始,大型对象拥有的一个所有者以及一组访问权限,这些可以通过 GRANT 和 REVOKE 进行管理。读取大型对象需要 SELECT 权限,写入或截断大型对象需要 UPDATE 权限。只有大型对象的拥有者(或数据库超级用户)才能够删除、评论、或更改大型对象的拥有者。要调整此行为以便与之前版本兼容,请参见 lo_compat_privileges 运行时参数。