Назад к вопросам
Middle+
3
Как работает составной индекс (A, B, C) в запросах?
Компании, где спрашивали
Magnit Tech
Ответ от нейросети
sobes.tech AI
Составной индекс (A, B, C) в базе данных создаётся по нескольким столбцам в указанном порядке. Он эффективен для запросов, которые фильтруют или сортируют данные начиная с первого столбца A, затем B, и затем C.
Например, индекс по (A, B, C) будет использоваться эффективно для запросов с условиями:
- WHERE A = ...
- WHERE A = ... AND B = ...
- WHERE A = ... AND B = ... AND C = ...
Но запрос с условием только по B или C без A, например WHERE B = ..., не сможет эффективно использовать этот индекс.
Это связано с тем, что индекс устроен как дерево, упорядоченное сначала по A, затем внутри A по B, и внутри B по C. Поэтому поиск по начальным столбцам индекса обязателен для его использования.
Пример SQL:
-- Использует индекс (A, B, C)
SELECT * FROM table WHERE A = 1 AND B = 2;
-- Не использует индекс (A, B, C) эффективно
SELECT * FROM table WHERE B = 2;