Middle+
Czym są indeksy w bazie danych? Rodzaje indeksów (B-tree, Hash, Full-text). Indeks klastrowy vs nieklastrowy. Indeksy pokrywające.
sobes.tech AI
Odpowiedź od AI
Индексы в базе данных — это специальные структуры данных, которые ускоряют поиск и сортировку записей в таблицах, уменьшая количество операций чтения.
Типы индексов:
- B-tree (сбалансированное дерево): самый распространённый тип. Подходит для поиска по диапазону, сортировки, равенства. Эффективен для большинства операций.
- Hash-индексы: используют хеш-функции для быстрого поиска по точному совпадению ключа. Не поддерживают поиск по диапазону.
- Full-text индексы: предназначены для полнотекстового поиска по текстовым полям, позволяют искать слова и фразы внутри больших текстов.
Кластерный vs некластерный индекс:
- Кластерный индекс определяет физический порядок хранения данных в таблице. Обычно таблица может иметь только один кластерный индекс.
- Некластерный индекс — отдельная структура, которая содержит ключи и указатели на данные, не меняет физический порядок строк.
Покрывающие индексы:
Индекс, который содержит все поля, необходимые для выполнения запроса, без обращения к основной таблице. Это значительно ускоряет выполнение, так как данные берутся только из индекса.
Пример создания покрывающего индекса в SQL:
CREATE INDEX idx_covering ON orders (customer_id, order_date) INCLUDE (total_amount);
Здесь индекс покрывает запросы, которые используют customer_id, order_date и total_amount.