我正在运行PostgreSQL 9.6.13版本。我有两个问题
我查看了PostgreSQL提供的'pg_type'目录表。 对于'text'和'jsonb'数据类型,字段typlen = -1 这意味着它们是可变长度类型,但是我在哪都找不到最大存储大小。
答案 0 :(得分:1)
有多个限制:
TOAST存储空间指定的理论上限为1GB。
但是实际限制要低得多-处理占用大量内存,而对于较长的值,可用内存可能会出现问题。也可能存在性能问题-jsonb是不可变的原子值-每次更新都会生成完整的新值,每次读取都必须读取完整值。如果您的值小于200MB,那么通常就没有问题。
数据库服务器不应大量使用交换。这意味着真正的限制取决于活动查询(活动用户)的数量。最高的max_connection意味着较低的实际值限制。
Typlen == -1的类型是 varlena 类型。您可以在documentation中找到最大尺寸。但是,这又是理论上的限制。实际限制较低,并且取决于Postgres的可用内存以及可能的存储对象的结构(属性)。您必须进行测试。没有其他方法。