Python 对django查询的结果进行迭代

Python 对django查询的结果进行迭代,python,django,Python,Django,我有一个django查询,我需要迭代它的结果,但是它非常慢……下面是一些代码 query = <Model>.objects.filter(<filter settings> results = rollup(query) #This function isn't super important, it's basically just summing over #specific fields that have specific properties, emptyi

我有一个django查询,我需要迭代它的结果,但是它非常慢……下面是一些代码

query = <Model>.objects.filter(<filter settings>

results = rollup(query) #This function isn't super important, it's basically just summing over
#specific fields that have specific properties, emptying the rest, and maintaing a few, the 
#result is still a django query set

我尝试过使用类似于
预取(prefetch_related
)的方法,但没有看到非常明显的效果。我是否可以对这个查询做其他改进

由于Django ORM体系结构(您应该创建很多Python对象),您的过滤器速度很慢,因为有大量的结果

要么您的请求不好,要么是误解,要么您可以使用Model.objects.raw()进行直接SQL查询(在某些情况下要快10倍)

您还可以使用
连接
对象使用直接SQL查询,但您必须自己处理对象创建(或列表或词汇表)。我将其用于一个项目,查询速度比Django one快60倍,我使用
dict(zip(myfieldslist,myresult))
检索结果以与模板兼容


请参阅:

您分析过它吗?您尝试过线程化吗?我们怎么可能知道有什么需要做的?你已经把所有相关的信息都提取出来了
for r in results:
   #do stuff..