Індексування в СУБД: що таке, типи індексів з ПРИКЛАДАМИ
Що таке індексація?
Індексація це метод структури даних, який дозволяє швидко отримувати записи з файлу бази даних. Індекс — це невелика таблиця, що складається лише з двох стовпців. Перший стовпець містить копію первинного або потенційного ключа таблиці. Його другий стовпець містить набір pointers для зберігання адреси блоку диска, де зберігається це конкретне значення ключа.
Індекс –
- Приймає ключ пошуку як вхідні дані
- Ефективно повертає колекцію відповідних записів.
Види індексування в СУБД

Індексація в базі даних визначається на основі її атрибутів індексації. Два основних типи методів індексування:
- Первинна індексація
- Вторинна індексація
Первинний індекс в СУБД
Первинний індекс — це впорядкований файл фіксованої довжини з двома полями. Перше поле є тим самим первинним ключем, а друге поле вказує на цей конкретний блок даних. У первинному індексі між записами в таблиці індексів завжди існує зв’язок один до одного.
Первинне індексування в СУБД також поділяється на два типи.
- Індекс щільності
- Розріджений індекс
Індекс щільності
У щільному індексі запис створюється для кожного ключа пошуку, який має значення в базі даних. Це допоможе швидше шукати, але потребує більше місця для зберігання записів індексу. У цьому індексуванні записи методів містять значення ключа пошуку та вказують на справжній запис на диску.
Розріджений індекс
Це індексний запис, який відображається лише для деяких значень у файлі. Sparse Index допомагає вирішити проблеми щільного індексування в СУБД. У цьому методі техніки індексування діапазон стовпців індексу зберігає ту саму адресу блоку даних, і коли дані потрібно отримати, адреса блоку буде отримана.
Однак розріджений індекс зберігає записи індексу лише для деяких значень ключів пошуку. Він потребує менше місця, менше витрат на обслуговування для вставлення та видалення, але він повільніший порівняно з щільним індексом для пошуку записів.
Нижче наведено індекс бази даних. Приклад індексу Sparse
Вторинний індекс в СУБД
Вторинний індекс у СУБД може бути згенерований полем, яке має унікальне значення для кожного запису, і це має бути ключ-кандидат. Він також відомий як індекс некластеризації.
Цей дворівневий метод індексування бази даних використовується для зменшення розміру відображення першого рівня. Для першого рівня вибирається великий діапазон чисел через це; розмір відображення завжди залишається малим.
Приклад вторинного індексу
Давайте розберемося з вторинним індексуванням на прикладі індексу бази даних:
У базі даних банківського рахунку дані зберігаються послідовно за acc_no; ви можете знайти всі рахунки в певному відділенні банку ABC.
Тут ви можете мати вторинний індекс у СУБД для кожного ключа пошуку. Запис індексу — це точка запису до сегмента, який містить покажчики на всі записи з їх конкретним значенням ключа пошуку.
Clusterіндексування в СУБД
У кластерному індексі в індексі зберігаються самі записи, а не покажчики. Іноді індекс створюється на стовпцях неосновного ключа, які можуть бути не унікальними для кожного запису. У такій ситуації ви можете згрупувати два або більше стовпців, щоб отримати унікальні значення та створити індекс, який називається кластерним індексом. Це також допоможе вам швидше ідентифікувати запис.
приклад:
Припустімо, що компанія набрала багато співробітників у різні відділи. У цьому випадку кластеризуюча індексація в СУБД повинна бути створена для всіх співробітників, які належать до одного відділу.
Він розглядається в окремому кластері, а індексні точки вказують на кластер в цілому. Тут Department _no є неунікальним ключем.
Що таке багаторівневий індекс?
Багаторівневе індексування в Database створюється, коли первинний індекс не поміщається в пам'яті. У цьому типі методу індексування ви можете зменшити кількість звернень до диска, щоб скоротити будь-який запис і зберігати його на диску як послідовний файл і створити розріджену базу на цьому файлі.
Індекс B-дерева
Індекс B-дерева — це широко використовувана структура даних для деревоподібного індексування в СУБД. Це збалансований багаторівневий формат деревоподібного індексування в техніці СУБД двійкові дерева пошуку. Усі листові вузли дерева B означають фактичні покажчики даних.
Крім того, усі листові вузли пов’язані між собою списком посилань, що дозволяє B-дереву підтримувати як довільний, так і послідовний доступ.
- Вивідні вузли повинні мати від 2 до 4 значень.
- Кожна дорога від кореня до листа здебільшого має однакову довжину.
- Нелисткові вузли, окрім кореневого вузла, мають від 3 до 5 дочірніх вузлів.
- Кожен вузол, який не є коренем або листом, має від n/2] до n дітей.
Переваги індексації
Важливими плюсами/перевагами індексування є:
- Це допомагає вам зменшити загальну кількість операцій введення-виведення, необхідних для отримання цих даних, тому вам не потрібно отримувати доступ до рядка в базі даних зі структури індексу.
- Пропонує користувачам швидший пошук і отримання даних.
- Індексація також допомагає вам зменшити табличний простір, оскільки вам не потрібно посилатися на рядок у таблиці, оскільки немає необхідності зберігати ROWID в індексі. Таким чином ви зможете зменшити простір таблиці.
- Ви не можете сортувати дані в головних вузлах, оскільки значення первинного ключа класифікує їх.
Недоліки індексації
Важливими недоліками/мінусами індексування є:
- Щоб виконати індексацію системи управління базою даних, вам потрібен первинний ключ таблиці з унікальним значенням.
- Ви не можете виконувати будь-які інші індекси в базі даних щодо індексованих даних.
- Вам не дозволено розділяти таблицю, організовану за індексом.
- Індексування SQL Зниження продуктивності в запитах INSERT, DELETE та UPDATE.
Підсумки
- Індексація - це невелика таблиця, яка складається з двох стовпців.
- Два основних типи методів індексування: 1) Первинне індексування 2) Вторинне індексування.
- Первинний індекс — це впорядкований файл фіксованої довжини з двома полями.
- Первинне індексування також поділяється на два типи: 1) Щільний індекс 2) Розріджений індекс.
- У щільному індексі запис створюється для кожного ключа пошуку, який має значення в базі даних.
- Метод розрідженого індексування допомагає вирішити проблеми щільного індексування.
- Вторинний індекс у СУБД — це метод індексування, ключ пошуку якого визначає порядок, відмінний від послідовного порядку файлу.
- Clustering index визначається як файл даних замовлення.
- Багаторівневе індексування створюється, коли первинний індекс не поміщається в пам’яті.
- Найбільша перевага індексування полягає в тому, що воно допомагає вам зменшити загальну кількість операцій введення/виведення, необхідних для отримання даних.
- Найбільшим недоліком у роботі системи керування базами даних індексування є необхідність первинного ключа в таблиці з унікальним значенням.