Зачем нужны индексы в БД

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'; ``` --- **Вывод:** Индексы — это **компромисс между скоростью чтения и записи**. Используйте их **осознанно**, где поиск важнее частоты обновлений!