Python Django合并查询以加速数据库访问
我创建了一个带有循环的查询列表:Python Django合并查询以加速数据库访问,python,sql,django,oracle,oracle11g,Python,Sql,Django,Oracle,Oracle11g,我创建了一个带有循环的查询列表: chunks = 1000 chunkTimeInS = (endDate - startDate).total_seconds()/chunks queryList=[] for timeChunk in range(0,chunks): startTime=startDate+timedelta(seconds=chunkTimeInS*timeChunk) endTime=startDate+timedelta(seconds=chun
chunks = 1000
chunkTimeInS = (endDate - startDate).total_seconds()/chunks
queryList=[]
for timeChunk in range(0,chunks):
startTime=startDate+timedelta(seconds=chunkTimeInS*timeChunk)
endTime=startDate+timedelta(seconds=chunkTimeInS*(timeChunk+1))
queryList.append(myModel.objects.using('myDB')
.exclude(myValue1=-99)
.filter(timestamp__gte=startTime, timestamp__lt=endTime)
.order_by("timestamp")
.aggregate(
Avg('myValue1'),
Avg('myValue2'),
myValue3 = Avg(F('myValue3')*F('myValue3')),
)
)
我想通过执行以下操作将所有数据保存到列表中:dataList=list(queryList)
。这个电话太长了。我想这是因为queryList中有大量的查询
有没有办法将此列表合并到一个查询中?或者其他解决方案来加速数据库访问
使用的数据库是Oracle 11g。如果列表中有查询集,则
data=reduce(lambda x,y:x | y,queryList)
可以工作。然而,您有aggregate
语句,那么它是一个字典列表,而不是查询集列表。我删除了我的答案。有没有办法避免循环以加速数据库访问?