首页 > 解决方案 > ArrayField 最大尺寸?

问题描述

我将使用 Django 的 ArrayField 来存储一个包含 500-50,000 个项目的庞大列表。它们的 ID 很短283974892598353920,但我担心会达到某个上限。Django 的 Postgres ArrayField 有任何限制吗?

标签: pythondjangopostgresqldjango-models

解决方案


如果您的 ID 仅由数字组成并保持在 2^63(9223372036854780000)以下,我建议使用bigintas 数据类型的数组:bigint[]. 每个元素占用 8 个字节(加上一点开销)。

您给定的示例283974892598353920大约是 2^60 并且在该范围内。

唯一相关的Postgres 限制是 1 GB 的最大字段大小,允许大约 2^60 个元素。50,000甚至还没有接近。

有关的:

不过,如果您想对数据进行任何类型的查询,请考虑使用集合(表)而不是巨大的数组。大型阵列的性能下降。


推荐阅读