LINUX.ORG.RU
мне кажется нет. индексировать стоит, когда данных много + индексируемы столбец участвует в поиске. т.к. буулеан имеет только 3 значения, то важным критерием поиска он не может быть: множество поиска должно быть уменьшено до минимума другими критериями.
Pi ★★★★★
()
Ответ на: комментарий от Pi
По этому полю поиска не будет, но будет удаление большого поличества записей в зависимости от значения поля. Вот и думаю, имеет ли смысл индексировать поле или нет.
lexius ★★
() автор топика
Ответ на: комментарий от lexius
>поиска не будет

>в зависимости от значения поля

удаление по критерию - поиск. если "большого поличества записей в зависимости от значения поля", то делай.

Pi ★★★★★
()
Имеет смысл провести полевые испытания. :)
Teak ★★★★★
()
Ответ на: комментарий от Pi
> мне кажется нет

В общем и целом согласен, что польза маловероятна.

У PostgreSQL есть много разных типов индексов. Возможно, какие-то из них подходят для boolean.

>т.к. буулеан имеет только 3 значения

Скорее 2, потому что NULL не входит в индекс.

anonymous
()
Возможно имеет смысл использовать partial index. То есть индекс над набором 
строк таблицы, удовлетворяющих какому-либо условию. Например:

CREATE INDEX index_name ON table (any_column) 
    WHERE boolean_column IS NOT TRUE;

И если в запросе нужно будет найти только строки, для которых значение 
boolean_column = false, то такой индекс может помочь. Можешь попробовать и 
посмотреть, что скажет EXPLAIN на твой запрос.

Конечно, обычный B-tree индекс над boolean колонкой смысла нет ставить.
Hjorn
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.