# 21. Использование индексов для повышения производительности. Виды индексов

TIP

Индекс - это механизм, который направлен на оптимизацию поиска.

Таблица №1

Табельный ФИО Группа
308372 Либченко М. M32011

Таблица №2

Группа Образовательная программа
M32011 Программирование

def Индекс - это метод, который позволяет получить структуру данных, предназначенную для оптимизации поиска.

Как выглядит индекс:

Ключ Значение (адрес кортежа в таблице)
key value

# Варианты индексов

# 1. Первичный индекс

def Первичный индекс - файл упорядочен по первичному ключу, и по нему же построен индекс, так что гарантируется уникальность каждой записи (кортежа)

Ключ (Табельный номер) Значение (адрес кортежа в таблице)
308372 value

Этот индекс можно переформатировать в какую-нибудь структуру данных, например, красно-чёрное дерево

  • Хеш индекс
Ключ (хеш табельного) Значение (адрес кортежа в таблице)
hashValue value

TIP

Для избавления от коллизий делаем ключ огромного размера

# 2. Кластеризованный индекс

def Кластеризованный индекс - файл упорядочен по ключевому или неключевому атрибуту, по которому построен индекс, при этом несколько кортежей (кластер) соответствует одному значению индекса.

Ключ (хеш от ФИО) Значение (адрес кортежа в таблице)
hashValue value

# 3. Вторичный индекс

def Вторичный индекс - индекс, который построен по атрибуту, отличному от того, по которому осуществлено упорядочивание

TIP

Первый вариант

Ключ (табельный) Значение (адрес кортежа в таблице)
308372 value

При этом у нас сама таблица отсортирована по ФИО.

TIP

Проблема заключается в том, что нам может понадобиться часто балансировать структуры (деревья)

TIP

Второй вариант

Ключ (табельный) Коэф сбалансированности Значение (адрес кортежа в таблице)
308372 balanceValue value

# Классы индексов

  1. Плотный - охватывает все записи
  2. Разреженный - охватывает только записи, находящиеся в блоке