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