SQLLab
Глоссарий/INDEX (индекс)
ИндексыСредний

INDEX (индекс)

Структура данных, ускоряющая поиск строк по значению колонки.

Синтаксис
CREATE INDEX [CONCURRENTLY] idx_name ON table (column);
CREATE INDEX ON table (col1, col2);  -- составной

Объяснение

Индекс — как оглавление книги: позволяет найти нужные строки без полного сканирования таблицы. По умолчанию PostgreSQL создаёт B-tree индексы. Каждый индекс: - Ускоряет SELECT с условием по этой колонке - Замедляет INSERT, UPDATE, DELETE (индекс нужно обновить) - Занимает дополнительное место на диске

Пример

-- Простой индекс
CREATE INDEX ON users (email);

-- Составной (порядок важен!)
CREATE INDEX ON orders (user_id, created_at DESC);

-- Частичный — только активные
CREATE INDEX ON users (email) WHERE is_active = true;