
Продуктивність Django
Оптимізація запитів, проблема N+1, індекси бази даних, connection pooling, профілювання, моніторинг
1Яка найпоширеніша проблема продуктивності, пов'язана із запитами Django ORM?
Яка найпоширеніша проблема продуктивності, пов'язана із запитами Django ORM?
Відповідь
Проблема N+1 — це найпоширеніша проблема продуктивності в Django ORM. Вона виникає, коли початковий запит отримує N об'єктів, а потім виконується ще N запитів для отримання пов'язаних об'єктів. Наприклад, ітерування по статтях і доступ до їхнього автора генерує один запит на статтю замість одного запиту з join.
2Який метод слід використовувати для вирішення проблеми N+1 із зв'язком ForeignKey?
Який метод слід використовувати для вирішення проблеми N+1 із зв'язком ForeignKey?
Відповідь
select_related() — це відповідний метод для вирішення проблеми N+1 зі зв'язками ForeignKey та OneToOneField. Він виконує SQL join і отримує пов'язані об'єкти одним запитом. prefetch_related() використовується для зв'язків ManyToMany або зворотних зв'язків (ForeignKey reverse).
3Коли слід використовувати prefetch_related() замість select_related()?
Коли слід використовувати prefetch_related() замість select_related()?
Відповідь
prefetch_related() призначений для зв'язків ManyToMany та зворотних зв'язків (ForeignKey reverse). На відміну від select_related(), який виконує SQL join, prefetch_related() виконує окремий запит і робить об'єднання в Python. Це уникає дублювання даних, яке виникало б при SQL join на зв'язках many-to-many.
Як використовувати Prefetch() для налаштування запитів prefetch_related()?
У чому головна перевага додавання індексу бази даних на поле?
+21 питань зі співбесід
Інші теми співбесід Django
Основи Python
Об'єктно-орієнтований Python
Основи Django
Models Django - Основи
Django Views
Шаблони Django
Форми Django
Розширені QuerySets
Автентифікація Django
Django Middleware
Django Admin
Django REST Framework
Сигнали Django
Завантаження файлів
Кешування в Django
Сесії Django
Email у Django
Тестування Django
Безпека Django
Розгортання Django
Просунутий Django ORM
Django & Celery
Django Channels
Django & GraphQL
Django & Docker
Django в екосистемі мікросервісів
Користувацькі команди Django
Інтернаціоналізація Django
Патерни проєктування Django
Django Async та ASGI
Settings та конфігурація для production
Спостережуваність і моніторинг
Опануй Django для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно