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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.