Индекс по полю bool или с малым набором данных

CREATE TABLE ttt
(
param integer,
status bool
)

ВСегда интересуют записи, где сатаус = true
SELECT param FROM ttt
WHERE status = true

Имеет ли смысл создать индекс на это поле для не очень здоровой таблицы, но часто обновляемой?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

В FAQ есть

В FAQ есть похожий вопрос.
Суть дела такова, что PostgreSQL достаточно умён, чтобы разобраться нужно ли использовать индекс или проще воспользоваться простым перебором. Ответ на вопрос используется ли индекс - даёт EXPLAIN.

Таким образом, я бы индекс создал - лишним не будет. Но если всерьёз хочется понять насколько это нужно - я бы сделал тесты на рабочем примере с индексом и без него и посмотрел бы на время выполнения запроса.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023