Встречается на 2% собеседований по Python
Как ускорить 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
интервью вопросы и ответы