Встречается на 2% собеседований по Python
Какие подходы применял при оптимизации запросов к БД
Оптимизация запросов к БД включает несколько ключевых подходов:
- Индексация – создание индексов на часто используемых полях в WHERE, JOIN, ORDER BY.
Пример:python# До User.objects.filter(name__startswith='A') # Без индекса на name # После class User(models.Model): name = models.CharField(db_index=True) # Добавляем индекс
-
Оптимизация запросов – использование
select_relatedиprefetch_relatedв Django для уменьшения количества запросов.python# Плохо: N+1 проблема users = User.objects.all() for user in users: print(user.profile.age) # Хорошо users = User.objects.select_related('profile').all() -
Денормализация – в некоторых случаях добавление избыточных данных для ускорения чтения.
-
Кэширование – использование Redis/Memcached для хранения результатов тяжелых запросов.
-
Анализ запросов – EXPLAIN в PostgreSQL или QuerySet.explain() в Django для понимания плана выполнения.
-
Пакетная обработка – bulk_create, update вместо множества отдельных запросов.
-
Оптимизация структуры БД – правильные типы данных, партиционирование.
Главное – измерять производительность до и после изменений!

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы