Здравствуйте, Aleksei_Lekomtsev, Вы писали:
A_L>Если я правильно понял, индекс на column1 отдельно создавать не нужно, так как в случае select c where clause/join with column1 будет использоваться композитный индекс(так как это определеяется порядком колонок на которые создали композитный индекс),
Верно
A_L>а в случае select c where clause/join with column2, column3 композитный индекс уже использовать не получится. Т.е нужно создавать 3 индекса — композитный, отдельно на column2 and column3?
Тоже верно.
Индексы (древовидные) это просто заранее отсортированные ключи, отсортированы они в том порядке как указаны в самом индексе. База делает условно бинарный поиск по этому "массиву". Если вы отсортировали по (column1, column2), то для поиска по column1 этот индекс может использоваться. А для поиска по column2 — нет.
Иногда моет быть полезно сделать отдельный индекс по column1 чтобы уменьшить его объем, но это очень редкий кейс.