Как сделать запрос в PostgreSQL игнорируя определенный индекс

Dmitrii Naumenko
1 min readDec 19, 2019

--

Иногда, по какой-либо причине необходимо на время отключить использование индекса, но так, чтобы индекс обновлялся при изменении данных. Например, нужно узнать как поведет себя SELECT без одного из индексов.

Для этого нужно установить параметр indisvalid равным false, например:

UPDATE
pg_index
SET
indisvalid = FALSE
WHERE
indexrelid = 'my_index'::regclass

где ‘my_index’ — название индекса, который необходимо игнорировать.
Теперь запросы по данным будут игнорировать указанный индекс.

Для того чтобы снова включить индекс, выполните запрос:

UPDATE
pg_index
SET
indisvalid = TRUE
WHERE
indexrelid = 'my_index'::regclass

--

--

Dmitrii Naumenko
Dmitrii Naumenko

Written by Dmitrii Naumenko

IT-Architect | Python team leader | TechLead | TeamLead | Senior Software Engineer

No responses yet