Составной (composite) индекс — индекс по нескольким колонкам. Порядок колонок критически важен.
CREATE INDEX idx_user_status ON orders(user_id, status);
Работает правило leftmost prefix: индекс используется для запросов по user_id или user_id + status, но НЕ для запроса только по status.
-- Использует индекс:
WHERE user_id = 1 AND status = 'active'
WHERE user_id = 1
-- НЕ использует:
WHERE status = 'active'
Порядок колонок: сначала колонки с equality (=), потом с range (<, >, BETWEEN). Это даёт максимальную эффективность B-tree.