Ответ
Индекс в базе данных — это специальная структура данных, которая позволяет СУБД выполнять поиск записей значительно быстрее. Его можно сравнить с оглавлением в книге: вместо того чтобы пролистывать каждую страницу (полное сканирование таблицы), СУБД обращается к индексу, чтобы сразу найти физическое расположение нужной строки.
Основной принцип — создание отсортированной структуры (чаще всего B-дерева) по одному или нескольким столбцам, которая содержит указатели на фактические строки в таблице.
Пример создания индекса в SQL:
-- Создаем индекс для столбца 'email' в таблице 'users'
CREATE INDEX idx_users_email ON users(email);
Этот индекс значительно ускорит запросы вида SELECT * FROM users WHERE email = 'user@example.com';
.
Преимущества:
- Ускорение операций чтения: Значительно повышает производительность запросов
SELECT
с условиямиWHERE
иJOIN
. - Обеспечение уникальности:
UNIQUE
индекс гарантирует, что все значения в столбце уникальны.
Недостатки:
- Замедление операций записи: При каждом
INSERT
,UPDATE
илиDELETE
строки СУБД необходимо обновлять и индекс, что создает дополнительные накладные расходы. - Дополнительное место на диске: Индексы хранятся отдельно и занимают дисковое пространство.