PostgreSQL数据类型jsonb最大存储范围

时间:2019-06-05 04:16:33

标签: postgresql types psql jsonb postgresql-9.6

我正在运行PostgreSQL 9.6.13版本。我有两个问题

  1. 数据类型“ jsonb”和“文本”的最大存储范围/大小是多少
  2. 如何查找其他字段的最大存储范围/大小?

我查看了PostgreSQL提供的'pg_type'目录表。 对于'text'和'jsonb'数据类型,字段typlen = -1 这意味着它们是可变长度类型,但是我在哪都找不到最大存储大小。

1 个答案:

答案 0 :(得分:1)

有多个限制:

  1. TOAST存储空间指定的理论上限为1GB。

  2. 但是实际限制要低得多-处理占用大量内存,而对于较长的值,可用内存可能会出现问题。也可能存在性能问题-jsonb是不可变的原子值-每次更新都会生成完整的新值,每次读取都必须读取完整值。如果您的值小于200MB,那么通常就没有问题。

  3. 数据库服务器不应大量使用交换。这意味着真正的限制取决于活动查询(活动用户)的数量。最高的max_connection意味着较低的实际值限制。

Typlen == -1的类型是 varlena 类型。您可以在documentation中找到最大尺寸。但是,这又是理论上的限制。实际限制较低,并且取决于Postgres的可用内存以及可能的存储对象的结构(属性)。您必须进行测试。没有其他方法。

相关问题