【问题标题】:ArrayField max size?ArrayField 最大尺寸?
【发布时间】:2020-04-19 10:58:39
【问题描述】:

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

【问题讨论】:

标签: python django postgresql django-models


【解决方案1】:

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

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

唯一相关的 Postgres limit 是 1 GB 的最大字段大小,允许大约 2^60 个元素。 50,000 还差得远。

相关:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 2015-02-10
    相关资源
    最近更新 更多