Задать вопрос

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

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

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

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

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

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