Селективность связана с долей строк, подходящих под условие. Индекс по boolean может быть полезен при редком значении, но часто бесполезен при выборе большой части таблицы.
Что такое селективность индексов в базе данных? Стоит ли вешать индекс на boolean поле?
Селективность связана с долей строк, подходящих под условие. Индекс по boolean может быть полезен при редком значении, но часто бесполезен при выборе большой части таблицы.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Селективность связана с долей строк, подходящих под условие. Индекс по boolean может быть полезен при редком значении, но часто бесполезен при выборе большой части таблицы.
Например, если необработанных строк очень мало, индекс для processed = false может ускорить очередь задач. В PostgreSQL частичный индекс по нужным ключам с таким predicate часто полезнее полного индекса на boolean. При распределении 50/50 и чтении многих столбцов последовательный scan может быть дешевле. Оценка зависит от статистики, размера таблицы и покрытия запроса. Термином селективность также называют долю уникальных значений — уточняйте используемое определение.