Встречается на собеседованиях • сегодня
Какие знаешь варианты решения проблемы с медленным запросом к БД
- Оптимизация запроса: Проверить и переписать запрос, добавить индексы на часто используемые поля, избегать
SELECT *, использоватьEXPLAINдля анализа.
sql
CREATE INDEX idx_user_email ON users(email);- Кэширование: Использовать Redis или Memcached для хранения результатов частых запросов.
python
from django.core.cache import cache
data = cache.get('slow_query_result')
if not data:
data = MyModel.objects.filter(...).all()
cache.set('slow_query_result', data, 60*10)- Пагинация: Разбивать данные на страницы с
LIMIT/OFFSETили keyset-пагинацией.
python
from django.core.paginator import Paginator
paginator = Paginator(queryset, 25)
page = paginator.page(1)-
Асинхронные запросы: Использовать
async/awaitс поддержкой асинхронных драйверов БД (например,asyncpgдля PostgreSQL). -
Денормализация: Иногда дублирование данных ускоряет чтение за счёт записи.
-
Шардинг/репликация: Распределить нагрузку между несколькими серверами БД.
-
Materialized Views: Предварительно агрегированные данные для сложных запросов.
-
Оптимизация ORM: В Django использовать
select_related(),prefetch_related(), избегать N+1 проблем.

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