Postgresql 的大对象功能有哪些限制?

jl6*_*jl6 6 postgresql

我还没有找到与about PostgreSQL页面相当的内容,特别是涵盖了大对象设施的限制,但从字里行间看,我认为以下内容是正确的:

  1. 不能存储超过 32TB 的大对象(原因:它们都存储在一个名为 的表中pg_largeobject,每个表的大小限制为 32TB(假设默认页面大小))。
  2. 不能存储超过 2^32 个大对象(原因:主键pg_largeobject是 an oid,是一个 32 位的数量)。
  3. pg_largeobject 不能分区(原因:因为是系统目录?)

这一切都正确吗?

Dan*_*ité 6

这3点是对的。我们可能会添加

  1. 对于 PostgreSQL 9.3 或更高版本,大对象不能超过 4TB,对于旧版本不能超过 2GB。这是基于发行说明

E.11.3.5。数据类型

将大对象的最大大小从 2GB 增加到 4TB(Nozomi Anzai、Yugo Nagata)


此外,二进制内容被切成 2000 字节的小块pg_largeobject。每个块有一行,因此在导入大内容(按照今天的标准是大的)时,该表中的行数往往会快速增长。尽管这并不意味着硬性限制,但出于性能原因,用户应该意识到这一点。