Оптимизация Django. 4 - Annotate и Aggregate в ORM. Вычисления в базе

  Рет қаралды 7,758

Senior Pomidor Developer

Senior Pomidor Developer

Күн бұрын

Пікірлер: 25
@sergeyly5438
@sergeyly5438 2 жыл бұрын
Спасибо за знания которыми так щедро делишься с нами
@vitalivarabyeu8394
@vitalivarabyeu8394 2 жыл бұрын
Сеньор Помидор! Я не знаю, как выразить свою благодарность за то, что вы делаете!
@BELLA_VESTA
@BELLA_VESTA 7 ай бұрын
Очень легко заходит этот курс после прохождения первых двух! С синей обложкой я помучался. Очень долго его проходил, иногда на то чтобы понять и вникнуть в суть одного видео у меня уходило 3-4 дня. Может потому что мне 49 годиков?)))Но я не двигался дальше пока на 100% не усваивал урок. Зато теперь просто кайф) p.s. Огромное спасибо тебе Серега за этот канал!!! И Руслану из клуба Дедов программистов за мотивацию!!!
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 7 ай бұрын
Спасибо за отзыв! На самом деле очень полезный. Сейчас как раз над новым курсом-интенсивном работаю и очень хотелось бы знать с какой скоростью его проходят. Вчера как раз созвонился с Русланом и рассказал ему про этот твой комментарий)
@BELLA_VESTA
@BELLA_VESTA 7 ай бұрын
@@SeniorPomidorDeveloper У меня есть небольшая мебельная фабрика и есть одна идея, которая мне спать не дает)) До того, как наткнулся на его канал у меня и в мыслях не было, что эту идею я сам смогу реализовать на практике!!! Он меня вдохновил!!! В школе на олимпиадах по информатике бывал, но это 30 лет назад было)) И вот сейчас я уверен, что у меня все получится! Еще раз низкий вам поклон!!! И с нетерпением жду новый курс!!!!
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 7 ай бұрын
@BELLA_VESTA вам спасибо что смотрели!
@ВиталийКоновалов-г1ц
@ВиталийКоновалов-г1ц 2 жыл бұрын
Спасибо! Как всегда все супер!
@DmitryChushov
@DmitryChushov 2 жыл бұрын
Спасибо за труд!
@shaxzodnizamov9773
@shaxzodnizamov9773 2 жыл бұрын
Все очень доступно объяснил, спасибо! 👍🏻
@fffffffff6862
@fffffffff6862 Жыл бұрын
Очень полезные видео и на удивление нигде таокго не найти, спасибо за контент. Странно что так мало зрителей как по мне заслуживаешь больше. Привет из Украины
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Привет! Спасибо за отзыв)
@АлексейКомаров-ф8к
@АлексейКомаров-ф8к Жыл бұрын
Хочу задать вопрос. Зачем мы взваливаем вычисление "total_amount" на базу данных? Ведь у нас уже есть на руках price для всех обьектов в переменной queryset, и мы этот total_amount можем посчитать в python, не делая доп.запрос в базу данных?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Про это я говорю на 23:50 Ну и также важно понять, что в переменной queryset нет ничего. Она lazy и пока мы к ней не обратились, запросов она не производит. Часто поверх ложится еще и пагинация. А total_amount будет нормально работать по любому кол-ву данных. Хоть 1000 хоть 100.000. Но если мы хотим именно выбрать оптимальный способ (к примеру замерить скорость первого и второго варианта) то в зависимости от кол-ва записей быстрее может стать первый или второй. Я предпочитаю такие штуки сразу через aggregate делать, пока данных мало оба варианта будут работать моментально
@АлексейКомаров-ф8к
@АлексейКомаров-ф8к Жыл бұрын
@@SeniorPomidorDeveloper про queryset я понял. А вот про вычисление в базе данных нет. Почему в БД это вычисление идёт быстрее. Разве там не нужно пробежаться по всем price в таблице и сложить их, а затем выдать одно число?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
@user-kn5ip9lr6r не могу описать точно как это делает база. Но это функция движка базы , которая специально для этих агрегаций и предназначена. Это точно не перебор из select-ов со сложением , она работает быстро и на больших кол-вах данных.
@АлексейКомаров-ф8к
@АлексейКомаров-ф8к Жыл бұрын
@@SeniorPomidorDeveloper спасибо большое. Узнаю много нового
@noname52rus
@noname52rus Жыл бұрын
спасибо!
@SeliverstovMusic
@SeliverstovMusic 2 жыл бұрын
Отличный урок! Подскажите, почему мы в функции list берём queryset = self.filter_queryset(self.get_queryset()) Почему не queryset = self.get_queryset() Зачем нужен .filter_queryset?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 2 жыл бұрын
чтобы когда мы передаем фильтр в API запросе, он отработал. это просто копипаст из основного list(), лучше это не менять, если не уверен что он делает
@SeliverstovMusic
@SeliverstovMusic 2 жыл бұрын
@@SeniorPomidorDeveloper большие спасибо! Вы лучший! :)
@unaibekovbakhyt6517
@unaibekovbakhyt6517 2 жыл бұрын
Супер
@ibrahimoglu
@ibrahimoglu 2 жыл бұрын
👍
@koshakpoc2876
@koshakpoc2876 2 жыл бұрын
Просмотров 1,2к а лайков 97 - это неуважение!
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 2 жыл бұрын
Да стандартно 7%-10% А вообще конечно, ставим лайки! )
@jamjam3337
@jamjam3337 11 ай бұрын
спасибо!
Оптимизация Django. 5 - Celery + Docker
30:31
Senior Pomidor Developer
Рет қаралды 16 М.
Exporting PDF Highlighted Text to Supernote notebook format
8:48
Гениальное изобретение из обычного стаканчика!
00:31
Лютая физика | Олимпиадная физика
Рет қаралды 4,8 МЛН
The evil clown plays a prank on the angel
00:39
超人夫妇
Рет қаралды 53 МЛН
小丑女COCO的审判。#天使 #小丑 #超人不会飞
00:53
超人不会飞
Рет қаралды 16 МЛН
Оптимизация Django. 9 - DB Индексы
19:11
Senior Pomidor Developer
Рет қаралды 6 М.
How to use annotate and aggregate on Django querysets
15:13
Rust's Witchcraft
9:18
No Boilerplate
Рет қаралды 191 М.
Django ORM Primer - Django QuerySet API and QuerySets
15:07
Very Academy
Рет қаралды 10 М.