Sobes.tech
Junior

Какви видове индекси съществуват в базите данни?

sobes.tech AI

Отговор от AI

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

  1. B-дерево (B+дерево):

    • Най-разпространеният тип.
    • Подходящ за широк спектър от операции: търсене по диапазон, точно съвпадение, сортиране.
    • По подразбиране се използва в много СУБД (MySQL, PostgreSQL, Oracle).
  2. Хеш индекси:

    • Основават се на хеш таблица.
    • Много бързи за търсене по точно съвпадение (=).
    • Не са подходящи за търсене по диапазон (BETWEEN, <, >), сортиране (ORDER BY) или търсене по шаблон (LIKE).
  3. Индекси за пълен текст:

    • Предназначени за търсене в текстови полета (BLOB, TEXT).
    • Позволяват търсене на думи или фрази, взимане предвид на синоними и морфологичен анализ.
    • Примери: MATCH...AGAINST в MySQL/MariaDB, tsvector/tsquery в PostgreSQL.
  4. Географски индекси (R-дерево):

    • Използват се за индексиране на географски или пространствени данни.
    • Позволяват ефективно намиране на обекти в определена област или граници.
  5. Битови (bitmap) индекси:

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

    • Влияе върху физическия ред на съхранение на редовете в таблицата.
    • В таблицата може да има само един клъстерен индекс.
    • Често се използва за първичния ключ.
  7. Неклъстерен индекс:

    • Не определя физическия ред на редовете.
    • Съдържа указатели към физическото разположение на редовете.
    • В една таблица може да има няколко неклъстерни индекса.
  8. Покриващ индекс:

    • Индекс, който съдържа всички колони, необходими за изпълнение на заявка, включително колоните в SELECT, условията в WHERE и ORDER BY.
    • Позволява на СУБД да не достъпва данните на таблицата, което ускорява изпълнението на заявката.
  9. Функционален индекс (по израз):

    • Индекс, изграден върху резултата от функция или израз върху една или повече колони.
    • Позволява индексиране на изчисляеми стойности.

При избора на тип индекс се вземат предвид типът данни, честотата и характерът на заявките (търсене по точна стойност, диапазон, сортиране, пълнотекстово търсене и т.н.) и кардиналността на колоната.