对于我的数据库中的模型,我需要为特定字段存储大约300个值。如果我使用Postgres特定的ArrayField而不是单独的表与One-to-,那么在性能和查询简单性方面会有什么缺点?很多关系?
答案 0 :(得分:12)
如果使用数组字段
defer
(https://docs.djangoproject.com/en/1.9/ref/models/querysets/#defer)字段,否则会通过only
或values
或其他内容将其排除在查询之外,您每次迭代该行时都要支付加载所有这些值的费用。如果这就是你需要的那么就是它。如果您使用M2M
prefetch_related
,如果只想加载这些值的子集,则可以使用{/ li>
就个人而言,我说要使用M2M表,但我不知道您的具体应用。如果您要处理大量数据,则可能需要抓取代表性数据集并使用它来测试这两种方法。