Я работаю в настоящее время над проектом аналитики и новичком по оптимизации запросов. Чтобы показать результат в браузере, требуется полная минут, в то время как только 45 000 записей должны быть доступны. Не могли бы вы предложить способы сократить время показа результатов.Django Query Optimization
Я написал следующий запрос, чтобы найти колл-длительность в лица возрастной группы:
sigma=0
popn=len(Demo.objects.filter(age_group=age))
card_list=[Demo.objects.filter(age_group=age)[i].card_no
for i in range(popn)]
for card in card_list:
dic=Fact_table.objects.filter(card_no=card.aggregate(Sum('duration'))
sigma+=dic['duration__sum']
avgDur=sigma/popn
выше кода в цикл для итерации по возрастным группам.
Модель выглядит следующим образом:
class Demo(models.Model):
card_no=models.CharField(max_length=20,primary_key=True)
gender=models.IntegerField()
age=models.IntegerField()
age_group=models.IntegerField()
class Fact_table(models.Model):
pri_key=models.BigIntegerField(primary_key=True)
card_no=models.CharField(max_length=20)
duration=models.IntegerField()
time_8bit=models.CharField(max_length=8)
time_of_day=models.IntegerField()
isBusinessHr=models.IntegerField()
Day_of_week=models.IntegerField()
Day=models.IntegerField()
Благодарности
+1 за ваше терпение. Я никогда не видел такого количества анти-шаблонов в нескольких строках кода OP. – danihp
Если '# 2' будет:' card_list = Demo.objects.filter (age_group = age) .values_list ('card_no', flat = True) '? И одна цитата отсутствует в 'sigma = dic ['duration__sum']' –
Да, вы rigth – lalo