Что такое индексы в PostgreSQL
Python
Middle
Без компании
Что такое индексы в PostgreSQL
Ответы
Индексы в PostgreSQL — это специальные структуры данных, ускоряющие поиск и фильтрацию записей в таблицах. Они работают аналогично указателям в книге, позволяя СУБД быстро находить данные без полного сканирования таблицы.
**Основные типы индексов:**
- **B-tree** (по умолчанию) — для сравнений (`=`, `>`, `<`, `BETWEEN`).
- **Hash** — только для точных совпадений (`=`).
- **GIN** (Generalized Inverted Index) — для составных данных (JSON, массивы, полнотекстовый поиск).
- **GiST** (Generalized Search Tree) — геоданные, полнотекстовый поиск.
- **BRIN** (Block Range INdex) — для больших таблиц с линейной сортировкой.
**Пример создания индекса:**
```
CREATE INDEX idx_user_email ON users(email); -- B-tree для email
CREATE INDEX idx_gin_tags ON posts USING GIN(tags); -- GIN для массива тегов
```
**Важно:** индексы ускоряют чтение, но замедляют вставку/обновление (требуют поддержки структуры).