Почему не следует вешать индексы на все поля
Python
Middle
Без компании
Почему не следует вешать индексы на все поля
Ответы
Индексы ускоряют поиск, но замедляют вставку, обновление и удаление данных, так как индексы тоже нужно обновлять. Чем больше индексов, тем больше накладных расходов на поддержание их актуальности.
**Пример:**
```
# Без индексов - быстрая вставка
cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ("Alice", "alice@example.com"))
# С индексами на name и email - вставка медленнее
cursor.execute("CREATE INDEX idx_name ON users(name)")
cursor.execute("CREATE INDEX idx_email ON users(email)")
```
**Когда не нужны индексы:**
- Поля редко используются в WHERE/JOIN/ORDER BY.
- Таблица небольшая (сканирование быстрее, чем поиск по индексу).
- Поля часто обновляются.
Оптимально индексировать только часто запрашиваемые поля.