SQLLab
Глоссарий/Partial Index (частичный индекс)
ИндексыПродвинутый

Partial Index (частичный индекс)

Индекс с условием WHERE — индексирует только часть строк таблицы.

Синтаксис
CREATE INDEX idx_name ON table (column) WHERE condition;

Объяснение

Частичный индекс меньше по размеру и быстрее обновляется, чем полный. Идеален когда запросы всегда фильтруют по одному условию. Пример: таблица orders с 10 млн строк, из которых активных (status='pending') всего 1000. Полный индекс на status — почти бесполезен. Частичный — только для pending — маленький и эффективный.

Пример

-- Только активные пользователи
CREATE INDEX ON users (email) WHERE is_active = true;

-- Незакрытые задачи
CREATE INDEX ON tasks (assigned_to, due_date)
WHERE status != 'done';

Анекдоты по теме