Middle+
Co jsou indexy v databázi? Typy indexů (B-strom, Hash, Full-text). Klastrovaný vs neklastrovaný index. Pokrývající indexy.
sobes.tech AI
Odpověď 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.