Django Postgres ArrayField与一对多关系相比较的优劣势。

18

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

1个回答

23
如果您使用数组字段: 如果你使用M2M:
  • 您可以更轻松地筛选相关值
  • 这些字段默认是延迟加载的,如果需要它们则可以使用prefetch_related,然后如果只想加载这些值的子集,则可以使用更高级的方法
  • M2M的总存储空间稍微大一些,因为有键和额外的id字段
  • 在这种情况下,联接的成本完全可以忽略不计,因为有键。
个人建议使用M2M表,但我不知道您的具体应用程序。如果您将处理大量数据,则值得获取代表性数据集,并对两种方法进行测试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接