Django的QuerySets是否足够懒惰以应对大型数据集?

我想我已经读过Django的ORM懒洋洋地加载对象的地方.假设我想在批量更新操作中更新大量对象(比如500,000).是否可以简单地迭代一个非常大的QuerySet,加载,更新和保存对象?

类似地,如果我想允许所有这些数千个对象的分页视图,我是否可以使用内置的pagination facility,或者由于QuerySet的大小,我每次都需要手动运行带有查询的数据集窗口所有对象?

最佳答案 如果使用SQL查询可以进行批量更新,那么我认为使用sql-queries或django-orm不会产生重大影响.但是如果更新实际上需要加载每个对象,处理数据然后更新它们,您可以使用orm或编写自己的sql查询并对每个处理过的数据运行更新查询,开销完全取决于代码逻辑.

内置的分页工具运行一个限制,偏移查询(如果你这样做是正确的),所以我不认为分页中有重大的开销.

点赞