Частичный индекс в БД?

Middle+
413 просмотров
AFK Offer AI

Частичный (partial) индекс — индекс только по части строк таблицы, отфильтрованных условием WHERE.

CREATE INDEX idx_active_users ON users(email) WHERE is_active = true;

Преимущества:

  • Меньше размер индекса (индексируются только нужные строки)
  • Быстрее INSERT/UPDATE (меньше обновлений индекса)
  • Эффективнее для скошенных данных (90% неактивных, 10% активных)
PostgreSQL поддерживает partial indexes нативно. MySQL — нет (только через generated columns + workaround). Планировщик использует partial index только если WHERE запроса совместим с условием индекса.

Следующий вопрос

Что такое first-class function?