Вопрос заключается в том, может ли многостолбцовый индекс покрывать запрос или хотя бы предложение where
(при условии, что ваши запросы относятся к фильтрации в предложении where
).
В общем, ответ - да. Рассмотрим данные, которые выглядят так:
x y datapage
a 1 datapage_1
a 2 datapage_2
a 3 datapage_3
b 1 datapage_4
. . .
Если ваш запрос:
select x, y
from t
where x = 'a' and y = 2;
Затем, без индекса, база данных должна сканировать все страницы данных, чтобы найти соответствующие строки.
С индексом только на x
база данных может найти все значения "a", но ей все равно нужно загрузить три страницы данных, чтобы получить значения y
.
С индексом как x
, так и y
база данных может напрямую перейти к "datapage_2".