Назад к вопросам
Middle
103
questionbank

Какие существуют виды индексов?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Виды индексов зависят от контекста их применения, обычно в базах данных.

По структуре хранения:

  • B-tree (B-дерево): Наиболее распространенный тип, используется для упорядоченного хранения данных и быстрого поиска диапазонов.
  • B+ tree (B+-дерево): Вариант B-дерева, где все данные хранятся в листовых узлах, что оптимизирует последовательное чтение.
  • Hash Index: Основан на хэш-таблицах, эффективен для поиска точных совпадений, но не подходит для поиска диапазонов или сортировки.
  • R-tree (R-дерево): Используется для индексации многомерных данных, например, географических координат.

По назначению:

  • Primary Key Index: Создается автоматически для первичного ключа, обеспечивает уникальность и служит идентификатором записи.
  • Secondary Index: Создается по одному или нескольким столбцам для ускорения запросов, не являющихся первичным ключом.
  • Unique Index: Гарантирует уникальность значений в индексируемом столбце (или комбинации столбцов).
  • Full-Text Index: Используется для поиска по тексту внутри столбцов.
  • Spatial Index: Применяется для индексации пространственных данных.

По способу создания:

  • Clustered Index: Определяет физический порядок хранения данных в таблице. Таблица может иметь только один кластерный индекс.
  • Non-clustered Index: Хранит указатели на действительные данные, которые могут быть расположены в другом порядке.

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

-- Создание обычного индекса
CREATE INDEX idx_lastname ON Employees (LastName);

-- Создание уникального индекса
CREATE UNIQUE INDEX idx_employeeid ON Employees (EmployeeID);

-- Создание составного индекса
CREATE INDEX idx_name_city ON Customers (FirstName, City);