Що таке «індекс» в РБД, для чого потрібно індексування

І ндекс є засіб прискорення пошуку запи-сей в таблиці, а також інших операцій, що використовують пошук: витяг, модифікацію, сортування і т. Д. Таблицю, для якої використовують індекс, називають індексованої.

Індекс містить відсортовану по колонці або неяк-ким колонкам інформацію і вказує на рядки, в яких зберігається конкретне значення колонки.

У деяких системах індекс інфляції-си зберігаються в індексних файлах окремо від табличних.

Рішення проблеми організації фізичного доступу до ін-формації залежить в основному від наступних факторів:

- виду вмісту в поле ключа записів індексного файлу;

- типу використовуваних посилань (покажчиків) на запис основ-ної таблиці;

- методу пошуку потрібних записів.

Індексний файл - це зберігається файл особливого типу, в кото-ром кожен запис складається з двох значень: дане і RID-покажчик.

На практиці найчастіше використовуються два методи пошуку: послідовний і бінарний (заснований на поділі інтервалу пошуку навпіл - див. Приклад нижче).

Пошук необхідних записів при індексації може происхо-дить по однорівневої або дворівневою схемою індексації.

Мал. 5.1. Однорівнева схема індексації

У кожному блоці записи розташовуються в порядку зростання значення ключа (або згортки).

Старшим ключем кожного блоку є ключ його останнього запису.

Якщо в індексному файлі зберігаються хеш-коди ключових полів індексованої таблиці, то алгоритм пошуку потрібної запи-сі включає три етапи:

1. Освіта згортки значення ключового поля шуканої записи.

2. Пошук в індексному файлі записи про блок, значення першо-го поля якого більше отриманої згортки (це гаран-тирует знаходження шуканої згортки в даному блоці).

У дворівневою схемою ключі (згортки) записів відокремлені від вмісту записів (рис. 5.2).

В даному випадку індекс основної таблиці розподілений по сукупності файлів: одному файлу головного індексу і безлічі файлів з блоками ключів.

На практиці при створенні індексу для деякої таблиці бази даних вказують поле таблиці, яке вимагає ін-дексаціі. Ключові поля таблиці в багатьох СУБД індекси-ються автоматично. Індексні файли, створювані по ключових полях таблиці, називаються файлами первинних індексів.

Якщо таблиця проіндексована, то всі команди, пов'язані з рухом таблиці (на наступний запис, в початок, в кінець) переміщають покажчик запису до відповідного з індексом, а не з фізичним розташуванням у вихідній таблиці.