Составные индексы — что сначала ставить: равенство или диапазон?
Ответ от нейросети
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 индекс будет использоваться менее эффективно.
Таким образом, правило:
- Колонки с равенством идут первыми
- Колонки с диапазоном идут после них
Это улучшает селективность и производительность запросов.