Junior
Какви видове индекси съществуват в базите данни?
sobes.tech AI
Отговор от AI
Основните типове индекси в базите данни:
-
B-дерево (B+дерево):
- Най-разпространеният тип.
- Подходящ за широк спектър от операции: търсене по диапазон, точно съвпадение, сортиране.
- По подразбиране се използва в много СУБД (MySQL, PostgreSQL, Oracle).
-
Хеш индекси:
- Основават се на хеш таблица.
- Много бързи за търсене по точно съвпадение (
=). - Не са подходящи за търсене по диапазон (
BETWEEN,<,>), сортиране (ORDER BY) или търсене по шаблон (LIKE).
-
Индекси за пълен текст:
- Предназначени за търсене в текстови полета (BLOB, TEXT).
- Позволяват търсене на думи или фрази, взимане предвид на синоними и морфологичен анализ.
- Примери:
MATCH...AGAINSTв MySQL/MariaDB,tsvector/tsqueryв PostgreSQL.
-
Географски индекси (R-дерево):
- Използват се за индексиране на географски или пространствени данни.
- Позволяват ефективно намиране на обекти в определена област или граници.
-
Битови (bitmap) индекси:
- Използват се в някои СУБД (например, Oracle, PostgreSQL).
- Подходящи за полета с ниска кардиналност (малко уникални стойности, например, пол, статус: активен/неактивен).
- Могат да бъдат много ефективни за сложни заявки с операции
ANDиOR.
-
Клъстерен индекс:
- Влияе върху физическия ред на съхранение на редовете в таблицата.
- В таблицата може да има само един клъстерен индекс.
- Често се използва за първичния ключ.
-
Неклъстерен индекс:
- Не определя физическия ред на редовете.
- Съдържа указатели към физическото разположение на редовете.
- В една таблица може да има няколко неклъстерни индекса.
-
Покриващ индекс:
- Индекс, който съдържа всички колони, необходими за изпълнение на заявка, включително колоните в
SELECT, условията вWHEREиORDER BY. - Позволява на СУБД да не достъпва данните на таблицата, което ускорява изпълнението на заявката.
- Индекс, който съдържа всички колони, необходими за изпълнение на заявка, включително колоните в
-
Функционален индекс (по израз):
- Индекс, изграден върху резултата от функция или израз върху една или повече колони.
- Позволява индексиране на изчисляеми стойности.
При избора на тип индекс се вземат предвид типът данни, честотата и характерът на заявките (търсене по точна стойност, диапазон, сортиране, пълнотекстово търсене и т.н.) и кардиналността на колоната.