Эффективнее ли пользоваться агрегацией?

Здравствуйте. Имеется код, который подсчитывает рейтинг сущности очень примитивным способом: сумма всех изменений рейтинга (-1 за "не нравится", +1 за "нравится").
sum([vote.change for vote in self.votes.all()])
Будет ли оптимальней (если да - насколько?) использовать вместо этого агрегацию?
self.votes.aggregate(Sum('change'))['change__sum'] or 0
  • Вопрос задан
  • 523 просмотра
Решения вопроса 2
sim3x
@sim3x
Premature optimization?

Лучше померять у себя, но второй способ теоретически должен быть быстрее, тк память не будет аллоцирована в питоне под list, а он ведь может быть гигантским

# посмотри какой генерируется запрос и какой получаешь ответ
Ответ написан
dizballanze
@dizballanze
Software developer at Yandex
Конечно будет быстрее делать подсчет в БД. Особенно, потому что не нужно передавать весь объем данных с БД в приложение.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы