IN
условно у меня есть поле state
и индекс для него
если написать в запросе state IN (1,5)
запрос уже висит
прям так и написать?
CREATE INDEX idx_name ON table (state)
WHERE state IN(1,5)
так же еще нужен индекс для запроса state IN (2, 6)
лучше сразу написать
CREATE INDEX idx_name ON table (state)
WHERE state IN(1,2,5,6)
или отдельные где только WHERE state IN(2,6)
мб вообще вот так:
...
state = ANY (ARRAY[1, 2, 5, 6])
Сделать через union и индекс просто по state
Запрос где ?
Нет, CREATE INDEX idx_name ON table (state); В первом приближении должно работать . Но лучше прислать запрос
Оптимизатор сам это сделает.
https://t.me/pgsql/303899
Это быстрый курс по оптимизации https://postgrespro.ru/education/courses/QPT Начните со статистики, а потом индексный доступ и можно ещё по битовой карте глянуть.
Обсуждают сегодня