首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >压缩前后json字段的大小限制在Postgres中吗?

压缩前后json字段的大小限制在Postgres中吗?
EN

Database Administration用户
提问于 2021-03-03 10:49:54
回答 1查看 11.5K关注 0票数 9

json字段的大小限制为1GB (来源:这个StackOverflow的答案):

jsontext数据类型相同,但具有JSON验证。text数据类型的最大大小为1GB。

我进行了一些实验,将不同大小的json插入到Postgres的表中。这里使用行的pg_sizeof似乎表明Postgres对json数据进行压缩。

我的实验:

代码语言:javascript
复制
create table json_size (n integer, j json);

对于值为1,10,100,1000,10,000,100,1000的n

代码语言:javascript
复制
with q as (select generate_series(1, n)::bigint as x)               
insert into json_size (n, j)
select 1, coalesce(json_agg(to_json(q.*)), '[]'::json) from q;
代码语言:javascript
复制
select n, pg_column_size(j) as size from json_size;

结果

代码语言:javascript
复制
n       size
1       10
10      92
100     996
1000    3224
10000   33488
100000  335115
1000000 3351365

在完成此压缩之前还是之后,1GB的大小限制?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2021-03-03 11:53:03

对于varlena数据类型(如json ),1GB的限制是在压缩之前。

请注意,您将需要大量的RAM来读取和写入这些值。将如此大的值存储在数据库中通常是一个问题和糟糕的设计。

票数 9
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/286352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档