Junior
49
questionbank

Что такое индекс в реляционной базе данных?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Индекс — это структура данных, улучшающая скорость операций поиска в базе данных. Он создает отсортированный список значений одного или нескольких столбцов таблицы, связанных с местоположением соответствующих строк. Это позволяет СУБД быстро находить нужные данные без полного сканирования таблицы.

Типы индексов:

  • Первичный (Primary Key): Уникально идентифицирует каждую строку таблицы. Автоматически создается СУБД и гарантирует уникальность значений.
  • Уникальный (Unique): Обеспечивает уникальность значений в одном или нескольких столбцах. Отличается от первичного тем, что может содержать NULL (в большинстве СУБД) и в таблице может быть несколько уникальных индексов.
  • Обычный (Non-Unique): Ускоряет поиск, но не требует уникальности значений.
  • Полнотекстовый (Full-Text): Используется для ускорения поиска по тексту в строковых столбцах.

Преимущества:

  • Значительно ускоряет выполнение SELECT-запросов, особенно при поиске, сортировке и объединении таблиц (JOIN).

Недостатки:

  • Занимает дополнительное дисковое пространство.
  • Замедляет операции INSERT, UPDATE, DELETE, так как при изменении данных сам индекс также должен быть обновлен.

Принцип работы (упрощенно): СУБД использует индекс как указатель. Вместо последовательного просмотра всех строк таблицы, она ищет нужное значение в индексе (который, как правило, имеет более эффективную структуру для поиска, например B-дерево) и по найденному указателю мгновенно переходит к нужной строке в таблице.

Пример создания индекса в SQL:

sql