Python Django批处理由于内存小?
我有一个模型,它有大量的实例,而内存无法容纳它们 现在我需要加载它们并用一些非常复杂的函数修改一些属性(因此我不能直接在数据库上执行修改) 我想知道是否有任何方法可以批量处理查询集。例如,我可以阅读如下内容:Python Django批处理由于内存小?,python,django,Python,Django,我有一个模型,它有大量的实例,而内存无法容纳它们 现在我需要加载它们并用一些非常复杂的函数修改一些属性(因此我不能直接在数据库上执行修改) 我想知道是否有任何方法可以批量处理查询集。例如,我可以阅读如下内容: Company.objects.all()[0:1000] Company.objects.all()[1000:2000] Company.objects.all()[3000:3000] ... 直到发现查询集为None。但是,上面的查询集总是从头开始读取,这不是很有效 您知道如何更
Company.objects.all()[0:1000]
Company.objects.all()[1000:2000]
Company.objects.all()[3000:3000]
...
直到发现查询集为None
。但是,上面的查询集总是从头开始读取,这不是很有效
您知道如何更高效地批处理模型吗?当您运行第二行
Company.objects.all()[1000:2000]
时,Django将只从数据库中获取项目1000-2000(零索引)。你所说的“上述查询集将始终从一开始就阅读”是什么意思?@Alasdair感谢你指出:)。我想我误解了列表切片是如何与Django一起工作的。