Зачем нужны индексы в БД
Python
Senior
Без компании
Зачем нужны индексы в БД
Ответы
Индексы — это **специальные структуры данных**, которые **ускоряют поиск, сортировку и соединение таблиц**, но **замедляют операции записи** (INSERT, UPDATE, DELETE).
---
### **Зачем они нужны?**
- **- Ускорение поиска (WHERE)**
Без индекса база данных **перебирает все строки** (полное сканирование). С индексом — находит нужные данные **мгновенно**, как по оглавлению в книге.
- **- Ускорение сортировки (ORDER BY)**
Индексы хранят данные в **отсортированном виде**, что ускоряет запросы с сортировкой.
- **- Ускорение соединений (JOIN)**
Индексы на **внешних ключах** (foreign key) ускоряют связывание таблиц.
- **- Гарантия уникальности (UNIQUE INDEX)**
Запрещают дублирование значений в столбце (например, уникальный email пользователя).
---
### **Когда индексы не нужны?**
- - На **маленьких таблицах** (выгода минимальна).
- - На столбцах с **низкой селективностью** (например, пол "муж/жен").
- - На столбцах, которые **часто обновляются** (индексы замедляют запись).
---
### **Пример на SQL**
```
-- Создаём индекс для ускорения поиска по email
CREATE INDEX idx_users_email ON users(email);
-- Теперь этот запрос будет работать быстрее
SELECT * FROM users WHERE email = 'test@example.com';
```
---
**Вывод:** Индексы — это **компромисс между скоростью чтения и записи**. Используйте их **осознанно**, где поиск важнее частоты обновлений!