Работал ли с индексами в БД
Python
Middle
Без компании
Работал ли с индексами в БД
Ответы
Да, работал. Индексы в БД ускоряют поиск и сортировку данных, но замедляют вставку и обновление из-за необходимости поддерживать структуру индекса.
**Пример создания индекса в SQL (PostgreSQL):**
```
CREATE INDEX idx_user_email ON users(email);
```
**В Django ORM:**
```
class User(models.Model):
email = models.EmailField(db_index=True) # Индекс на поле
name = models.CharField(max_length=100)
class Meta:
indexes = [
models.Index(fields=['name'], name='idx_user_name'), # Составной индекс
]
```
**Когда использовать:**
- Частые поиски по полю (`WHERE`, `JOIN`).
- Уникальные поля (`UNIQUE INDEX`).
- Сортировка (`ORDER BY`).
**Когда избегать:**
- Частые `INSERT/UPDATE`.
- Маленькие таблицы.
- Поля с низкой селективностью (например, `boolean`).
Оптимизация индексов требует анализа запросов через `EXPLAIN`.