【发布时间】:2015-01-18 20:00:48
【问题描述】:
对于我数据库中的模型,我需要为特定字段存储大约 300 个值。如果我使用 Postgres 特定的 ArrayField 而不是具有一对多关系的单独表,那么在 性能 和 查询简单性 方面会有什么缺点?
【问题讨论】:
标签: django postgresql django-models
对于我数据库中的模型,我需要为特定字段存储大约 300 个值。如果我使用 Postgres 特定的 ArrayField 而不是具有一对多关系的单独表,那么在 性能 和 查询简单性 方面会有什么缺点?
【问题讨论】:
标签: django postgresql django-models
如果你使用数组字段
defer (https://docs.djangoproject.com/en/1.9/ref/models/querysets/#defer) 字段或通过only 或values 或其他方式将其从查询中排除,否则您将支付全部加载的成本每次遍历该行时这些值。如果这是你需要的,那就这样吧。如果你使用 M2M
prefetch_related,如果您只想加载这些值的子集,请使用它们我个人会说使用 M2M 表,但我不知道您的具体应用。如果您要处理大量数据,可能值得获取一个有代表性的数据集并用它测试这两种方法。
【讨论】: