PostgreSQL无法在TEXT列中插入1亿个字符

alen0pnh  于 2023-04-20  发布在  PostgreSQL
关注(0)|答案(1)|浏览(204)

我使用PostgreSQL 15。它安装在AWS RDS中。这个表有一个TEXT列。
当我尝试插入中等长度的文本(几千个字符)时,我没有问题,它可以工作。但是,当我尝试插入一个大文本(1亿个字符,54 Mb .txt文件)时,我没有得到任何错误,但该行中的列仍然是空的-数据没有插入。
数据没有特殊字符等,只有数字和a-zA-Z。
如何将这么多的字符插入到表中?或者我应该以不同的方式存储数据?

flseospp

flseospp1#

根据PostgreSQL Docs
短字符串的存储要求(最多126字节)是1字节加上实际字符串,其中包括字符情况下的空格填充。较长的字符串有4字节的开销而不是1。长字符串由系统自动压缩,因此对磁盘的物理要求可能更少。非常长的值也存储在后台表中,这样它们就不会干扰对较短列值的快速访问。在任何情况下,可以存储的最长可能字符串大约是1GB。(数据类型声明中允许的n的最大值小于该值。如果你希望存储没有特定上限的长字符串,使用不带长度说明符的text或character variable,而不是构成任意的长度限制)。
如果您能更详细地描述您的用例以包含建议,那就更好了。

相关问题