【问题标题】:Django Postgres ArrayField vs One-to-Many relationshipDjango Postgres ArrayField 与一对多关系
【发布时间】:2015-01-18 20:00:48
【问题描述】:

对于我数据库中的模型,我需要为特定字段存储大约 300 个值。如果我使用 Postgres 特定的 ArrayField 而不是具有一对多关系的单独表,那么在 性能查询简单性 方面会有什么缺点?

【问题讨论】:

    标签: django postgresql django-models


    【解决方案1】:

    如果你使用数组字段

    如果你使用 M2M

    • 您可以更轻松地过滤这些相关值
    • 默认情况下,这些字段会被推迟,如果需要,可以使用 prefetch_related,如果您只想加载这些值的子集,请使用它们
    • 由于键和额外的 id 字段,使用 M2M 时数据库中的总存储量将略高
    • 在这种情况下,由于键的原因,连接的成本完全可以忽略不计。

    我个人会说使​​用 M2M 表,但我不知道您的具体应用。如果您要处理大量数据,可能值得获取一个有代表性的数据集并用它测试这两种方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-22
      • 2019-07-29
      • 2011-06-02
      • 1970-01-01
      • 2011-01-26
      • 2022-12-18
      • 2015-11-25
      • 1970-01-01
      相关资源
      最近更新 更多