Как применяются разные типы индексов в БД
Python
Middle
Без компании
Как применяются разные типы индексов в БД
Ответы
Индексы в БД ускоряют поиск и сортировку данных. Основные типы:
**B-дерево (B-tree)** – стандартный индекс, подходит для большинства операций (сравнение, диапазоны, сортировка). Пример:
```
CREATE INDEX idx_name ON users(name); -- Поиск по имени
```
**Хеш-индекс** – быстрый поиск точного совпадения (не поддерживает диапазоны):
```
-- В PostgreSQL
CREATE INDEX idx_email_hash ON users USING HASH(email);
```
**Составной индекс** – для нескольких полей (важен порядок):
```
CREATE INDEX idx_name_age ON users(name, age); -- WHERE name='x' AND age>20
```
**Полнотекстовый (GIN/GiST)** – для текстового поиска:
```
CREATE INDEX idx_fts ON articles USING GIN(to_tsvector('english', content));
```
**Частичный индекс** – только для подмножества данных:
```
CREATE INDEX idx_active_users ON users(email) WHERE is_active=True;
```
Выбор зависит от запросов: B-tree – универсальный, хеш – для точных match, GIN – для сложного поиска в тексте.