Re[3]: Should we use Single Index in case we use Composite index?
От: VladiCh  
Дата: 08.12.23 07:34
Оценка:
Здравствуйте, Aleksei_Lekomtsev, Вы писали:

A_L>Здравствуйте, Alex.Che, Вы писали:


AC>>Здравствуйте, Aleksei_Lekomtsev, Вы писали:


A_L>>>Например, есть колонки — column1, column2, column3

A_L>>>Создали один индекс на все три
A_L>>>Следует ли еще отдельно создавать индекс на column1, column2, column3? Т.е. в итоге иметь 4 индекса?

A_L>>>Если я правильно понял, индекс на column1 отдельно создавать не нужно, так как в случае select c where clause/join with column1 будет использоваться композитный индекс(так как это определеяется порядком колонок на которые создали композитный индекс),

A_L>>>а в случае select c where clause/join with column2, column3 композитный индекс уже использовать не получится. Т.е нужно создавать 3 индекса — композитный, отдельно на column2 and column3?

A_L>>>Запросы могут быть разные


AC>>всё зависит от особенностей конкретного движка СУБД.


A_L>PostgreSQL, например


Postgres умеет разные типы индексов использовать. Есть например GiST индекс, его он умеет сканировать по любым комбинациям колонок.
Если создать отдельные индексы на column1 и column2, column3 то он может использовать Bitmap Index Scan, то есть сканировать два индекса по отдельности.
Нужно разбираться конкретно с требованиями в общем.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.