Работал ли с prefetch

Python Junior Без компании
Работал ли с prefetch
Ответы
Да, работал. Prefetch в Django используется для оптимизации запросов к БД, уменьшая количество SQL-запросов при обращении к связанным объектам. **Пример:** ``` # Без prefetch - N+1 проблема books = Book.objects.all() for book in books: print(book.author.name) # Отдельный запрос для каждого автора # С prefetch_related - 2 запроса books = Book.objects.prefetch_related('author').all() for book in books: print(book.author.name) # Авторы загружены одним запросом ``` **Нюансы:** - `prefetch_related` эффективен для `ManyToMany` и `ForeignKey` (обратные связи). - Для `ForeignKey` (прямые связи) лучше использовать `select_related`. - Можно кастомизировать через `Prefetch()` для сложных случаев. **Важно:** Prefetch не уменьшает общее количество строк в БД, но сокращает количество запросов.