Встречается на 1% собеседований по Python
Какие знаешь варианты решения проблемы с медленным запросом к БД
- Оптимизация запроса: Проверить и переписать запрос, добавить индексы на часто используемые поля, избегать
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
интервью вопросы и ответы