query = Performance.objects.filter(Q(power=100) |
Q(power=192),machine_no__in=machine_nos,
).values_list("machine_no", "power")
count_192_100 = Counter(query)
Это сбрасывает фактический объект для каждой строки в базе данных, десериализует их, а затем использует хеширование, чтобы сделать уникальный счет для них.Вместо этого используйте вашу базу данных для того, для чего она хороша -
count_192_100 = Performance.objects.filter(Q(power=100) |
Q(power=192),machine_no__in=machine_nos,
).values_list("machine_no", "power").count()
.count () в основном делает select COUNT(*) from...
Конечно, я должен упомянуть, что это не делает совсем то же самое, чтоВаш запрос счетчик использует хеширование для подсчета уникальных значений!Если возможно, что у вас есть дублирующиеся строки в этой таблице, вы хотите select COUNT(DISTINCT *) FROM ...
, что вы можете сделать с
count_192_100 = Performance.objects.filter(Q(power=100) |
Q(power=192),machine_no__in=machine_nos,
).values_list("machine_no", "power").distinct().count()