Django: Calculate the Sum of the column values through query

前端 未结 4 1396
生来不讨喜
生来不讨喜 2020-12-04 10:35

I have a model

class ItemPrice( models.Model ):
     price = models.DecimalField ( max_digits = 8, decimal_places=2 )
     ....

I tried thi

4条回答
  •  星月不相逢
    2020-12-04 11:07

    Using cProfile profiler, I find that in my development environment, it is more efficient (faster) to sum the values of a list than to aggregate using Sum(). eg:

    sum_a = sum([item.column for item in queryset]) # Definitely takes more memory.
    sum_b = queryset.aggregate(Sum('column')).get('column__sum') # Takes about 20% more time.
    

    I tested this in different contexts and it seems like using aggregate takes always longer to produce the same result. Although I suspect there might be advantages memory-wise to use it instead of summing a list.

提交回复
热议问题