Django ORM: как QuerySet ленится, цепляется и генерирует SQL
Django ORM прячет SQL за красивым Python-интерфейсом. Пишешь User.objects.filter(active=True).order_by('name')[:10] — получаешь список пользователей. Круто. Но когда запросы тормозят или N+1 пожирает базу, приходится понимать, что вообще происходит. Разберём внутренности QuerySet: почему он ленивый, как работает chaining, когда запрос реально выполняется, и чем select_related отличается от prefetch_related на уровне SQL.
https://habr.com/ru/companies/otus/articles/988886/
#django #Django_ORM #QuerySet #ленивые_запросы #оптимизация_запросов #работа_с_БД

Hacker News