Как оптимизировать запросы к БД
Python
Middle
Без компании
Как оптимизировать запросы к БД
Ответы
Оптимизация SQL-запросов в Python включает несколько ключевых подходов:
- **Используй индексы** – убедись, что запросы используют индексы для ускорения поиска.
- **Ограничивай выборку** – забирай только нужные поля (`SELECT column1, column2` вместо `SELECT *`).
- **Пейджинг** – применяй `LIMIT` и `OFFSET` для больших таблиц.
- **Кеширование** – используй `django-cache` или `redis` для часто запрашиваемых данных.
- **Оптимизация JOIN** – избегай лишних соединений и проверяй их порядок.
**Пример с SQLAlchemy:**
```
# Плохо (выбирает все поля)
users = session.query(User).all()
# Лучше (только нужные поля + лимит)
users = session.query(User.id, User.name).limit(100).all()
```
**Django ORM:**
```
# Оптимизированный запрос с select_related (для ForeignKey)
orders = Order.objects.select_related('customer').filter(status='completed')[:50]
```
Дополнительно: анализируй медленные запросы через `EXPLAIN` (PostgreSQL) или `django-debug-toolbar`.