Назад к вопросам
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);