Junior
Koje vrste indeksa postoje u bazama podataka?
sobes.tech АИ
Одговор од АИ
Основне типове индекси у базама података:
-
B-Tree (B+Tree):
- Најчешћи тип.
- Погодан за широк спектар операција: претрага по опсегу, тачно одговарање, сортирање.
- Подразумевано се користи у многим СУБД-овима (MySQL, PostgreSQL, Oracle).
-
Хеш-индекси:
- Засновани на хеш табели.
- Веома брзи за претрагу по тачној вредности (
=). - Не погодни за претрагу по опсегу (
BETWEEN,<,>), сортирање (ORDER BY) или претрагу по шаблону (LIKE).
-
Потпуни текстуални индекси:
- Намењени за претрагу по тексту у текстуалним пољима (BLOB, TEXT).
- Омогућавају претрагу речи или фраза, узимају у обзир синониме и морфолошку анализу.
- Примери:
MATCH...AGAINSTу MySQL/MariaDB,tsvector/tsqueryу PostgreSQL.
-
Просторни индекси (R-Tree):
- Користе се за индексирање географских или просторних података.
- Омогућавају ефикасно проналажење објеката у одређеној области или границама.
-
Бит маска (Bitmap):
- Користи се у неким СУБД-овима (нпр. Oracle, PostgreSQL).
- Погодан за поља са ниском кардиналношћу (мало јединствених вредности, нпр. пол, статус: активан/неактиван).
- Може бити веома ефикасан за сложене упите са операцијама
ANDиOR.
-
Кластеризовани индекс:
- Утиче на физички редослед чувања података у редовима табеле.
- У табели може бити само један кластеризовани индекс.
- Често се користи за примарни кључ.
-
Некластеризовани индекс:
- Не одређује физички редослед редова.
- Садржи показиваче на физичко распоређивање редова података.
- Табела може имати више некластеризованих индекси.
-
Покривајући индекс:
- Индекс који садржи све колоне потребне за извршавање упита, укључујући колоне у листи
SELECT, условимаWHEREиORDER BY. - Омогућава СУБД-у да не приступа табличним подацима, што убрзава извршавање упита.
- Индекс који садржи све колоне потребне за извршавање упита, укључујући колоне у листи
-
Функционални (индекс по изразу):
- Индекс који је изграђен на резултату функције или израза над једним или више колона.
- Омогућава индексирање израчунатих вредности.
При избору типа индекса узима се у обзир тип података, учесталост и карактер упита (претрага по тачној вредности, опсегу, сортирање, потпуни текстуални претрага итд.) и кардиналност колоне.