Индексы в реляционных базах данных (БД) предназначены для организации быстрого доступа к строкам таблицы по значениям одной или более колонок этих строк. 3
Принцип работы индексов можно описать так: когда поступает запрос на выборку данных с условием по индексированному столбцу, система управления базами данных (СУБД) использует индекс для поиска, вместо того чтобы сканировать всю таблицу строка за строкой. 1
Процесс происходит в несколько этапов: 1
- Анализ запроса. 1 Оптимизатор запросов СУБД анализирует запрос и решает, будет ли использование какого-либо из существующих индексов эффективнее, чем полное сканирование таблицы. 1
- Поиск по индексу. 1 Если оптимизатор решает использовать индекс, он обращается к B-дереву индекса. 1 Благодаря отсортированной и сбалансированной структуре дерева поиск нужного значения (или диапазона значений) происходит очень быстро. 1
- Доступ к данным таблицы. 1 Найдя в индексе нужные ключи, СУБД использует хранящиеся там указатели для прямого доступа к соответствующим строкам в таблице. 1
Некоторые цели использования индексов:
- Ускорение выполнения запросов на выборку данных. 1 Особенно это заметно на больших таблицах, содержащих миллионы или даже миллиарды записей. 1
- Ускорение сортировки данных. 1 Если данные запрашиваются в отсортированном виде по столбцу, для которого существует индекс, СУБД может избежать дополнительной операции сортировки, так как данные в индексе уже упорядочены. 1
- Ускорение группировки данных. 1 Аналогично сортировке, операции группировки (GROUP BY) могут выполняться быстрее при наличии подходящих индексов. 1
- Обеспечение уникальности значений. 1 Уникальные индексы гарантируют, что в индексируемом столбце или наборе столбцов не будет дублирующихся значений. 1