Sobes.tech
Senior
43

Sudėtiniai indeksai – ką pirmiausia dėti: lygybę ar diapazoną?

Įmonės kur klausė
Cloud.ru

Atsakymas iš AI

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 индекс будет использоваться менее эффективно.

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

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

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