Sobes.tech
Back to questions
Middle+
4

Как работает составной индекс (A, B, C) в запросах?

Companies where asked
Magnit Tech

Answer from AI

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;