Sobes.tech
Назад к вопросам
Senior
4

Составные индексы — что сначала ставить: равенство или диапазон?

Компании, где спрашивали
Cloud.ru

Ответ от нейросети

sobes.tech AI

В составных индексах в базах данных обычно рекомендуется сначала ставить колонки с условием равенства, а затем — с условием диапазона. Это связано с тем, что индекс строится по порядку колонок, и оптимизатор эффективно использует индекс, когда сначала фильтруются точные значения, а потом уже диапазонные.

Например, если у вас есть индекс по (user_id, created_at), и в запросе есть условие WHERE user_id = ? AND created_at > ?, то сначала ставим user_id (равенство), потом created_at (диапазон).

Если поменять порядок, например (created_at, user_id), то при условии равенства по user_id и диапазону по created_at индекс будет использоваться менее эффективно.

Таким образом, правило:

  • Колонки с равенством идут первыми
  • Колонки с диапазоном идут после них

Это улучшает селективность и производительность запросов.