Индексиране в СУБД: Какво е, Видове индекси с ПРИМЕРИ
Какво е индексиране?
Индексирането е техника за структура на данни, която ви позволява бързо да извличате записи от файл на база данни. Индексът е малка таблица, която има само две колони. Първата колона съдържа копие на първичния или кандидат ключ на таблица. Втората му колона съдържа набор от указатели за съхраняване на адреса на дисковия блок, където се съхранява тази конкретна стойност на ключ.
Индекс –
- Взема ключ за търсене като вход
- Ефективно връща колекция от съвпадащи записи.
Видове индексиране в СУБД
Индексирането в базата данни се определя въз основа на нейните атрибути за индексиране. Два основни вида методи за индексиране са:
- Първично индексиране
- Вторично индексиране
Първичен индекс в СУБД
Първичният индекс е подреден файл с фиксиран размер с две полета. Първото поле е същото като първичен ключ, а второто поле е насочено към този конкретен блок данни. В първичния индекс винаги има връзка едно към едно между записите в индексната таблица.
Основното индексиране в СУБД също е допълнително разделено на два типа.
- Плътен индекс
- Разреден индекс
Плътен индекс
В плътен индекс се създава запис за всеки ключ за търсене, оценен в базата данни. Това ви помага да търсите по-бързо, но се нуждае от повече място за съхраняване на индексни записи. При това индексиране записите на метода съдържат стойност на ключ за търсене и сочат към реалния запис на диска.
Разреден индекс
Това е индексен запис, който се появява само за някои от стойностите във файла. Sparse Index ви помага да разрешите проблемите с плътното индексиране в СУБД. При този метод на техника на индексиране, диапазон от индексни колони съхранява един и същ адрес на блок с данни и когато данните трябва да бъдат извлечени, адресът на блока ще бъде извлечен.
Разреденият индекс обаче съхранява записи на индекс само за някои стойности на ключ за търсене. Той се нуждае от по-малко място, по-малко разходи за поддръжка за вмъкване и изтриване, но е по-бавен в сравнение с плътния индекс за локализиране на записи.
По-долу е даден индекс на база данни Пример за Sparse Index
Вторичен индекс в СУБД
Вторичният индекс в СУБД може да бъде генериран от поле, което има уникална стойност за всеки запис и трябва да бъде кандидат ключ. Известен е също като неклъстерен индекс.
Тази техника за индексиране на база данни на две нива се използва за намаляване на размера на картографирането на първото ниво. Поради това за първо ниво е избран голям диапазон от числа; размерът на картографирането винаги остава малък.
Пример за вторичен индекс
Нека разберем вторичното индексиране с пример за индекс на база данни:
В база данни за банкови сметки данните се съхраняват последователно от acc_no; може да искате да намерите всички сметки в конкретен клон на банка ABC.
Тук можете да имате вторичен индекс в СУБД за всеки ключ за търсене. Индексният запис е точка на запис към група, която съдържа указатели към всички записи с тяхната конкретна стойност на ключ за търсене.
Clustering Index в СУБД
В клъстъриран индекс самите записи се съхраняват в индекса, а не указатели. Понякога индексът се създава върху колони с непървичен ключ, които може да не са уникални за всеки запис. В такава ситуация можете да групирате две или повече колони, за да получите уникалните стойности и да създадете индекс, който се нарича клъстерен индекс. Това също ви помага да идентифицирате записа по-бързо.
Пример:
Да приемем, че една компания е наела много служители в различни отдели. В този случай клъстерното индексиране в СУБД трябва да се създаде за всички служители, които принадлежат към един и същи отдел.
Разглежда се в единичен клъстер, а индексните точки сочат към клъстера като цяло. Тук отдел _no е неуникален ключ.
Какво е многостепенен индекс?
Многостепенно индексиране в База данни се създава, когато първичен индекс не се побира в паметта. При този тип метод на индексиране можете да намалите броя на достъпите до диска, за да скъсите всеки запис и да го запазите на диск като последователен файл и да създадете рядка база върху този файл.
Индекс на B-дърво
B-tree index е широко използваната структура от данни за дървовидно индексиране в СУБД. Това е многостепенен формат на дървовидно индексиране в СУБД техника, която е балансирана двоични дървета за търсене. Всички листови възли на B дървото означават действителни указатели на данни.
Освен това, всички листови възли са свързани помежду си със списък с връзки, което позволява на B дърво да поддържа произволен и последователен достъп.
- Водещите възли трябва да имат между 2 и 4 стойности.
- Всеки път от корена до листа е предимно с еднаква дължина.
- Възлите, които не са листа, освен основния възел, имат между 3 и 5 дъщерни възела.
- Всеки възел, който не е корен или лист, има между n/2] и n деца.
Предимства на индексирането
Важни плюсове/предимства на индексирането са:
- Помага ви да намалите общия брой I/O операции, необходими за извличане на тези данни, така че не е необходимо да осъществявате достъп до ред в базата данни от структура на индекс.
- Предлага по-бързо търсене и извличане на данни на потребителите.
- Индексирането също ви помага да намалите табличното пространство, тъй като не е необходимо да се свързвате към ред в таблица, тъй като няма нужда да съхранявате ROWID в индекса. Така ще можете да намалите табличното пространство.
- Не можете да сортирате данни във водещите възли, тъй като стойността на първичния ключ ги класифицира.
Недостатъци на индексирането
Важни недостатъци/минуси на индексирането са:
- За да изпълните индексиращата система за управление на базата данни, имате нужда от първичен ключ в таблицата с уникална стойност.
- Не можете да извършвате други индекси в базата данни върху индексираните данни.
- Нямате право да разделяте организирана по индекс таблица.
- SQL индексиране Намаляване на производителността при INSERT, DELETE и UPDATE заявка.
Oбобщение
- Индексирането е малка таблица, която се състои от две колони.
- Два основни типа методи за индексиране са 1) Първично индексиране 2) Вторично индексиране.
- Първичният индекс е подреден файл с фиксиран размер с две полета.
- Основното индексиране също е допълнително разделено на два типа 1) Плътен индекс 2) Разреден индекс.
- В плътен индекс се създава запис за всеки ключ за търсене, оценен в базата данни.
- Методът за рядко индексиране ви помага да разрешите проблемите с плътното индексиране.
- Вторичният индекс в СУБД е метод за индексиране, чийто ключ за търсене определя ред, различен от последователния ред на файла.
- Clustering index се дефинира като файл с данни за поръчка.
- Многостепенното индексиране се създава, когато първичен индекс не се побира в паметта.
- Най-голямата полза от индексирането е, че ви помага да намалите общия брой I/O операции, необходими за извличане на тези данни.
- Най-големият недостатък при изпълнението на системата за управление на базата данни за индексиране е необходимостта от първичен ключ в таблицата с уникална стойност.