Встречается на собеседованиях • сегодня
Как ускорить SQL запрос
Оптимизация SQL запросов в Python зависит от СУБД, но есть универсальные подходы:
- Индексы – убедитесь, что запрос использует индексы для колонок в WHERE/JOIN:
python
# Для SQLAlchemy
session.query(User).filter(User.name == 'John').all() # name должен быть проиндексирован- LIMIT/OFFSET – вместо полной выборки используйте пагинацию:
python
session.query(User).limit(100).offset(200).all()- JOIN вместо подзапросов – подзапросы часто медленнее:
python
# Плохо
subq = session.query(Order.user_id).filter(Order.price > 100)
session.query(User).filter(User.id.in_(subq)).all()
# Лучше
session.query(User).join(Order).filter(Order.price > 100).all()- EXPLAIN – анализируйте план выполнения запроса:
python
# PostgreSQL пример
result = session.execute("EXPLAIN ANALYZE SELECT * FROM users")
print(result.fetchall())-
Кэширование – используйте Redis/memcached для часто повторяющихся запросов.
-
Материализованные представления – для сложных агрегаций.
-
Оптимизация ORM – избегайте N+1 проблемы с
.joinedload()в SQLAlchemy:
python
session.query(User).options(joinedload(User.orders)).all()Для больших таблиц также помогает партиционирование и шардинг данных.

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