Какие знаешь инструменты оптимизации запросов в БД
Python
Senior
Мой Офис
Какие знаешь инструменты оптимизации запросов в БД
Ответы
**Индексы** – ускоряют поиск по часто используемым полям.
```
# Пример создания индекса в Django
class User(models.Model):
username = models.CharField(max_length=100, db_index=True)
```
**Оптимизация JOIN** – минимизация связей, выбор правильного типа JOIN (INNER, LEFT и т.д.).
**EXPLAIN** – анализ плана запроса для выявления узких мест.
**Кэширование** – Redis/Memcached для частых запросов.
**Пагинация** – LIMIT/OFFSET или keyset-пагинация для больших выборок.
**Оптимизация ORM** – в Django: `select_related()`, `prefetch_related()`, `only()`, `defer()`.
**Денормализация** – дублирование данных для уменьшения JOIN.
**Партиционирование** – разделение таблиц по диапазонам или хэшу.
**Материализованные представления** – предрасчитанные данные (PostgreSQL).
**Batch-запросы** – группировка операций вставки/обновления.