Python 对django查询的结果进行迭代
我有一个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
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..