对于大多数项目,内存负载最重的时候是大数据查询加载到 python 内存中,比如
Model.objects.filter(...).order_by(...)[:50]
# The second [:50] is evaluated, the entire dataset is shoved into memory.
在 django 文档中:提到了.defer()和.only() 查询集方法作为帮助减少内存使用的技巧,但没有更多地提及它们。
我想我的主要问题是,当尝试 .save() 或 .delete() 模型实例时,是否可以只在模型上调用它,除了 pk 之外的所有内容都被延迟?前任:
model = Model.objects.only("pk").get(pk=12)
# is model.save() or model.delete() okay here?
可能还有其他奇怪的情况,应该注意 .only() 和 .defer() ,我现在想不出任何。不过,它们似乎是超级有用的方法。如果有人想出任何方法,请发帖,谢谢。