Sobes.tech
Junior

Koje vrste indeksa postoje u bazama podataka?

sobes.tech АИ

Одговор од АИ

Основне типове индекси у базама података:

  1. B-Tree (B+Tree):

    • Најчешћи тип.
    • Погодан за широк спектар операција: претрага по опсегу, тачно одговарање, сортирање.
    • Подразумевано се користи у многим СУБД-овима (MySQL, PostgreSQL, Oracle).
  2. Хеш-индекси:

    • Засновани на хеш табели.
    • Веома брзи за претрагу по тачној вредности (=).
    • Не погодни за претрагу по опсегу (BETWEEN, <, >), сортирање (ORDER BY) или претрагу по шаблону (LIKE).
  3. Потпуни текстуални индекси:

    • Намењени за претрагу по тексту у текстуалним пољима (BLOB, TEXT).
    • Омогућавају претрагу речи или фраза, узимају у обзир синониме и морфолошку анализу.
    • Примери: MATCH...AGAINST у MySQL/MariaDB, tsvector/tsquery у PostgreSQL.
  4. Просторни индекси (R-Tree):

    • Користе се за индексирање географских или просторних података.
    • Омогућавају ефикасно проналажење објеката у одређеној области или границама.
  5. Бит маска (Bitmap):

    • Користи се у неким СУБД-овима (нпр. Oracle, PostgreSQL).
    • Погодан за поља са ниском кардиналношћу (мало јединствених вредности, нпр. пол, статус: активан/неактиван).
    • Може бити веома ефикасан за сложене упите са операцијама AND и OR.
  6. Кластеризовани индекс:

    • Утиче на физички редослед чувања података у редовима табеле.
    • У табели може бити само један кластеризовани индекс.
    • Често се користи за примарни кључ.
  7. Некластеризовани индекс:

    • Не одређује физички редослед редова.
    • Садржи показиваче на физичко распоређивање редова података.
    • Табела може имати више некластеризованих индекси.
  8. Покривајући индекс:

    • Индекс који садржи све колоне потребне за извршавање упита, укључујући колоне у листи SELECT, условима WHERE и ORDER BY.
    • Омогућава СУБД-у да не приступа табличним подацима, што убрзава извршавање упита.
  9. Функционални (индекс по изразу):

    • Индекс који је изграђен на резултату функције или израза над једним или више колона.
    • Омогућава индексирање израчунатих вредности.

При избору типа индекса узима се у обзир тип података, учесталост и карактер упита (претрага по тачној вредности, опсегу, сортирање, потпуни текстуални претрага итд.) и кардиналност колоне.