Индексирование в СУБД: Что такое, виды индексов с ПРИМЕРАМИ

Что такое индексация?

Индексирование — это метод структурирования данных, который позволяет быстро извлекать записи из файла базы данных. Индекс — это небольшая таблица, имеющая всего два столбца. Первый столбец содержит копию первичного или потенциального ключа таблицы. Второй столбец содержит набор указатели для хранения адреса дискового блока, в котором хранится это конкретное значение ключа.

Индекс –

  • Принимает ключ поиска в качестве входных данных
  • Эффективно возвращает коллекцию совпадающих записей.

Виды индексации в СУБД

Виды индексации в СУБД
Тип индексов в базе данных

Индексирование в базе данных определяется на основе ее атрибутов индексации. Два основных типа методов индексации:

  • Первичное индексирование
  • Вторичная индексация

Первичный индекс в СУБД

Первичный индекс — это упорядоченный файл фиксированной длины с двумя полями. Первое поле является тем же первичным ключом, а второе поле указывает на этот конкретный блок данных. В основном индексе между записями индексной таблицы всегда существует связь один к одному.

Первичное индексирование в СУБД также делится на два типа.

  • Плотный индекс
  • Разреженный индекс

Плотный индекс

В плотном индексе запись создается для каждого ключа поиска, имеющего значение в базе данных. Это помогает выполнять поиск быстрее, но требует больше места для хранения индексных записей. При таком индексировании записи метода содержат значение ключа поиска и указывают на реальную запись на диске.

Плотный индекс

Разреженный индекс

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

Однако разреженный индекс хранит записи индекса только для некоторых значений ключа поиска. Ему требуется меньше места, меньше затрат на обслуживание для вставки и удаления, но он медленнее по сравнению с плотным индексом для поиска записей.

Ниже приведен индекс базы данных. Пример разреженного индекса.

Разреженный индекс

Вторичный индекс в СУБД

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

Этот двухуровневый метод индексирования базы данных используется для уменьшения размера отображения первого уровня. По этой причине для первого уровня выбран большой диапазон чисел; размер отображения всегда остается небольшим.

Пример вторичного индекса

Давайте разберемся с вторичной индексацией на примере индекса базы данных:

В базе данных банковских счетов данные сохраняются последовательно по Acc_no; Возможно, вы захотите найти все счета в определенном филиале банка ABC.

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

Пример вторичного индекса

ClusterИспользование индекса в СУБД

В кластеризованном индексе в индексе хранятся сами записи, а не указатели. Иногда индекс создается на столбцах, не являющихся первичными ключами, которые могут не быть уникальными для каждой записи. В такой ситуации вы можете сгруппировать два или более столбца, чтобы получить уникальные значения, и создать индекс, который называется кластеризованным индексом. Это также поможет вам быстрее идентифицировать запись.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Предположим, компания наняла множество сотрудников в различные отделы. В этом случае кластерная индексация в СУБД должна быть создана для всех сотрудников, принадлежащих к одному отделу.

Он рассматривается в одном кластере, а индексные точки указывают на кластер в целом. Здесь Department _no — это неуникальный ключ.

Что такое многоуровневый индекс?

Многоуровневое индексирование в База данных создается, когда первичный индекс не помещается в памяти. В этом типе метода индексирования вы можете уменьшить количество обращений к диску, сократив любую запись и сохранив ее на диске как последовательный файл, а также создать на основе этого файла разреженную базу.

Многоуровневый индекс

Индекс B-дерева

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

Более того, все конечные узлы связаны между собой списком связей, что позволяет B-дереву поддерживать как произвольный, так и последовательный доступ.

Индекс B-дерева

  • Ведущие узлы должны иметь от 2 до 4 значений.
  • Каждый путь от корня к листу в основном имеет одинаковую длину.
  • Нелистовые узлы, помимо корневого узла, имеют от 3 до 5 дочерних узлов.
  • Каждый узел, который не является корнем или листом, имеет от n/2] до n дочерних узлов.

Преимущества индексации

Важные плюсы/преимущества индексирования:

  • Это помогает вам сократить общее количество операций ввода-вывода, необходимых для получения этих данных, поэтому вам не нужно получать доступ к строке базы данных из структуры индекса.
  • Предлагает пользователям более быстрый поиск и получение данных.
  • Индексирование также помогает уменьшить табличное пространство, поскольку вам не нужно ссылаться на строку в таблице, поскольку нет необходимости хранить ROWID в индексе. Таким образом вы сможете уменьшить табличное пространство.
  • Вы не можете сортировать данные в ведущих узлах, поскольку их классифицирует значение первичного ключа.

Недостатки индексации

Важными недостатками/минусами индексирования являются:

  • Для выполнения индексации системы управления базой данных вам необходим первичный ключ таблицы с уникальным значением.
  • Вы не можете выполнять какие-либо другие индексы в базе данных для индексированных данных.
  • Вам не разрешено секционировать таблицу, организованную по индексу.
  • Индексирование SQL Снижение производительности запросов INSERT, DELETE и UPDATE.

Резюме

  • Индексация представляет собой небольшую таблицу, состоящую из двух столбцов.
  • Два основных типа методов индексирования: 1) Первичная индексация 2) Вторичная индексация.
  • Первичный индекс — это упорядоченный файл фиксированной длины с двумя полями.
  • Первичное индексирование также делится на два типа: 1) Плотный индекс 2) Разреженный индекс.
  • В плотном индексе запись создается для каждого ключа поиска, имеющего значение в базе данных.
  • Метод разреженной индексации помогает решить проблемы плотной индексации.
  • Вторичный индекс в СУБД — это метод индексации, ключ поиска которого определяет порядок, отличный от последовательного порядка файла.
  • ClusterИндексный индекс определяется как файл данных заказа.
  • Многоуровневое индексирование создается, когда первичный индекс не помещается в памяти.
  • Самым большим преимуществом индексирования является то, что оно помогает сократить общее количество операций ввода-вывода, необходимых для получения этих данных.
  • Самый большой недостаток системы управления базами данных индексирования — вам нужен первичный ключ таблицы с уникальным значением.