当查询结果有很多对象时,QuerySet的缓存行为会导致使用大量内存。如果你需要对查询结果进行好几次循环,这种缓存是有意义的,但是对于 queryset 只循环一次的情况,缓存就没什么意义了。在这种情况下,iterator()可能会有所帮助。
当queryset非常大的时候可以使用oterator(),数据量不是很大的时候不需要使用,这样反而影响性能。
queryset = Book.objects.all():
for book in queryset.iterator():
...
相关文章
- 10-21ORM操作中管理对象的获取及使用
- 10-21django ORM中的复选MultiSelectField的使用
- 10-21djang中的restframework的自关联递归循环嵌套的系列化器使用
- 10-21djang中orm使用iterator()
- 10-21Java中迭代器Iterator的使用
- 10-21[转]在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查
- 10-21首页> MySQL的>如何使用范围选择雄辩的ORM中除(A和B)以外的所有行?
- 10-21在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查
- 10-2159 Django基础三件套 , 模板{{}}语言 , 程序连mysql Django项目app Django中ORM的使用
- 10-21Django中ORM的使用